IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Variables de session


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 110
    Points : 68
    Points
    68
    Par défaut [AJAX] Variables de session
    Bonjour,

    Je decouvre AJAX grace au tuto de Gael Donat actuellement, et dans le cadre d une interaction avec php, je voudrais utiliser des variables de session , je procede comme ceci et ca ne marche pas :

    Le code php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    $session_start();
    $mavar= "Nom user : ";
    $_SESSION['auto_refresh']==1;
    header('Content-Type: text/xml'); 
    echo "<?xml version=\"1.0\"?>\n";
    echo "<exemple>\n";
     
            echo "<donnee>" . $mavar . $_SESSION['user_nom'] . "</donnee>\n";
     
    echo "</exemple>\n";
     
    ?>
    Ceci m'affiche bien une alert javascript(comme souhaité) , mais celle ci contient uniquement la valeur de $mavar et pas celle de $_SESSION['user_nom']. Est ce que le header('Content-Type: text/xml'); empeche de declarer la session avant en php? Si oui connaitriez vous un moyen de le contourner?

    Merci par avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Salut
    Après le session_start(), ça ne serait pas plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['user_nom']="Nom user : ";

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 110
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Non , session_start(); est une fonction necessaire a chaque page du projet pour la transmission des variables de session, ma variable $_SESSION['user'] est declarée et recoit une valeur dans une page precedente. La ce que tu ecris reviens a la declarer a nouveau (donc ecraser son ancienne valeur).

    Merci quand meme

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 65
    Points
    65
    Par défaut
    Je ne sais pas si c'est le header qui bloque, mais je ne vois pas l'utilité de mettre cette ligne ici. Ta question est plus un problème PHP qu'un problème AJAX, tu devrais la poser sur le forum PHP...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 110
    Points : 68
    Points
    68
    Par défaut
    Bonjour cher suricat;

    recuperer une variable de session apres un session_start(); , puis afficher sa valeur par un simple echo n'est pas un code php tres perilleux, enfin meme moi qui suit faible en php, ai la quasi certitude qu il n y a pas d erreur possible dans ces deux lignes. Maintenant je declare une autre variable php , soit $mavar= "Nom user : "; , dont je recupere la valeur sans encombre dans mon alert() javascript recuperant le contenu du xml crée par php. Mon probleme est que je recupere seulement la variable $mavar, et pas ma variable de session (dont je suis sur pour avoir testé maintes fois qu elle est definie). Le meme script sans le header xml fonctionne sans probleme , dont betement je me dis qu il y a une mauvaise interaction entre les vars de session et le "contexte ajax". Si un admin juge mon post hors sujet pour ce forum, grand bien lui fasse de le supprimer ou le deplacer, quant a toi, je me demande le but d'une reponse telle que celle que tu m as faite.

    Bien à toi.

    Cordialement

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 65
    Points
    65
    Par défaut
    On doit s'être mal compris. Si ton code sans le header marche sans problème, pourquoi veux tu absolument mettre un header ?

    Les techniques d'appel AJAX sont utilisées côté client, et n'ont donc rien avoir avec le PHP côté serveur et les variables de SESSION.
    AJAX ne récupère que le résultat des echos créés sur le serveur sans chercher à savoir comment ta chaine envoyée par un "écho" à été créée.

    Cordialement.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 110
    Points : 68
    Points
    68
    Par défaut
    Alors , ajax , dans le principe, ou surtout comme je veux l utiliser la, envoi une requete http au server par le biais de javascript, via php sur le server diverses actions sont effectuées, php retourne un fichier xml contenant la reponse a transmettre a javascript en retour ........ on avance ??

  8. #8
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 65
    Points
    65
    Par défaut
    Je suis là pour t'aider, c'est tout.
    En effet, le header('Content-Type: text/xml'); est nécessaire pour utiliser responseXML (je ne savais pas).
    Maintenant, il y a sûrement un conflit au niveau de PHP entre l'utilisation du header et des sessions.
    Beaucoup de problèmes sur ce sujet sont relatés sur le Web.

    Essaies peut-être en utilisant ob_start(); et ob_end_flush();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $session_start();
    $mavar= "Nom user : ";
    $_SESSION['auto_refresh']==1;
    header('Content-Type: text/xml'); 
     
    ob_start(); //mettre tout ce qui sort dans un buffer
     
    echo "<?xml version=\"1.0\"?>\n";
    echo "<exemple>\n";
     
            echo "<donnee>" . $mavar . $_SESSION['user_nom'] . "</donnee>\n";
     
    echo "</exemple>\n";
     
    ob_end_flush(); //vider le buffer ici
     
    ?>
    Si ça ne fonctionne pas, déplace éventuellement ob_start(); un peu plus haut dans le code.

    Et si tu laisse le header et que tu utilises responseText au lieu de responseXML pour tester, qu'est-ce que ça donne ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 110
    Points : 68
    Points
    68
    Par défaut
    en fait j avais posté ce topic il y a maintenant quelques jours et entre temps , j ai changé de solution car préssé par le temps, mais souhaitant apprendre les bases d ajax , je vais tester ce que tu me conseilles des que j aurai un peu de temps , mais pas aujourd hui ca c est sur.
    Affaire a suivre

    Et j oubliais merci la piste du ob_start()

  10. #10
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 65
    Points
    65
    Par défaut
    Je t'en prie (mais je ne garanti pas que ça marche).

  11. #11
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    faut pas de $ avant le session_start()
    J'ai pas tout lu, mais bon à mon avis ça ne risque pas de marcher avec ça... Bon courage

Discussions similaires

  1. [AJAX] Variable de session avec Ajax
    Par koloma dans le forum AJAX
    Réponses: 2
    Dernier message: 17/05/2013, 04h44
  2. [AJAX] Passage variable de session
    Par Ctesias dans le forum AJAX
    Réponses: 1
    Dernier message: 06/02/2012, 12h24
  3. [AJAX] Ajax / Variables de sessions / Frameset
    Par Dortan dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/01/2009, 18h03
  4. AJAX, javascript et variable de session PHP
    Par cdryk dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/09/2007, 19h04
  5. [AJAX] Ajax et variables de session php
    Par sorlok dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/05/2007, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo