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

Langage PHP Discussion :

Changement d'une variable de session via script PHP appelé par XMLHTTPRequest


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut Changement d'une variable de session via script PHP appelé par XMLHTTPRequest
    Bonjour,
    Je suis confronté à un problème étrange dont je n'arrive pas à trouver la solution (malgré le fait que je ne sois pas la seule mais aucune des autres conversations ne m'a aidé).
    Donc voila : j'ai une variable de session $_session['var'] dans ma page principale que je modifie dans un script php appelé par ajax. La modification se fait bien dans le script mais n'est pas retourné à ma page principale (même après rafraichissement).
    Comment cela se fait-il?

    page principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php session_start();
    $_SESSION['var']='';
    ?>
    <input type="button" onclick="javascript:changement()"/>
    script appelé par la fonction changement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    session_start();
    $_SESSION['var']=$var;
    ?>
    Donc si je fais un var_dump de ma variable de session dans le script, ça me renvoie la bonne valeur.
    Par contre dans ma page principale ça me retourne bool(false).

    Merci beaucoup pour votre aide, je ne sais vraiment plus quoi faire!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 188
    Points : 121
    Points
    121
    Par défaut
    hello,
    si tu rafraichis ta page c'est normal que $_session['var'] soit toujours vide car tu l'initialises à chaque fois.

    essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php session_start();
    if(!isset($_SESSION["var"]))
    {
    $_SESSION['var']='';
    }
    ?>

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Merci de m'avoir répondu,

    J'ai donc supprimé le raffraichissement de la page et, comme tu me l'as conseillé je verifie si ma variable est initialisé avant de la reinitialiser.
    Cependant , j'ai toujours le même problème.
    J'ai tenté ça mais ça ne marche pas :

    principal.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (!isset($_SESSION['mavar']))
    {
    	$_SESSION['mavar']='';
    }
     
    //blabla
     
    session_write_close();
    Script php appelé qui modifie mavar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(!isset($_SESSION))
    {
     
    	session_start();
    }
    //modif de $_SESSION['mavar'];
    session_write_close();
    Comment faire pour que ces valeurs soient bien conservées???

    Merci pour votre aide.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Dans la mesure ou ta variable est dans $_SESSION, elle est conservée jusqu'a l'expiration de ta session. Si ton appel Ajax est bien fait, tu auras accés a cette variable n'importe ou sur ton site.

    Es-tu sur que ton appel Ajax copie bien la variable en session, comment l'as-tu vérifié ?

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Merci pour ta réponse.

    J'ai fait un test pour savoir si mes deux identifiants de session étaient les mêmes... et bien oui!!!

    Je ne comprends donc pas pourquoi les variables sont NULL.

    Concernant la copie des variables en session, je fais simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['maVar']='truc';
    et si je fais un var_dump de $_SESSION['maVar'], elle est bien égale à 'truc' dans le script php (appelé par ajax) et puis dès qu'on en sort, plus rien :
    maVar=NULL...

    Y'a t-il un moyen de "forcer" php à bien écrire ses sessions?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Le mieux c'est que tu postes tout ton code car je ne vois pas pourquoi PHP refuserait de conserver ta variable en session.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    ça y est j'ai trouvé le problème mais je pouvais vraiment pas me douter que ça venait de

    Donc en fait c'était parce que mes variables étaient du type $_SESSION[1]['maVar'].
    Avec une variable du genre $_SESSION['maVar'] ça marche parfaitement...

    J'y comprends rien, c'est très louche!!!

    En tout cas merci pour ton aide!

    EDIT :Sujet résolu et explications ici

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. exporter une base de données via script php
    Par DimitriLille dans le forum Langage
    Réponses: 3
    Dernier message: 04/06/2014, 09h31
  2. Lancer une simple commande http via script php
    Par Machine Head dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2013, 10h00
  3. Réponses: 7
    Dernier message: 08/04/2010, 16h10
  4. modifier une variable de session via javascript
    Par DiverSIG dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/04/2010, 07h13
  5. recuperer une variable JavaScript dans un script php
    Par touf35 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/06/2008, 17h31

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