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 :

Perte des variable de session au changement de page.


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Perte des variable de session au changement de page.
    Bonjour,

    après la réinstallation d'un serveur, l'intégralité de mon système de session ne fonctionne plus.

    Ma configuration actuelle : PHP 4.49, Apache 2.2.11, Serveur Windows 2k3.

    Bon j'ai fait quelques tests :

    un fichier test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    session_start();
    $_SESSION['toto']="bonne annee";
    echo "Je vous souhaite une ".$_SESSION['toto'];
     
    ?>
    <a href="test2.php">test2</a>
    Le texte "Je vous souhaite une bonne année" apparait bien;

    click sur le lien [hop]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    session_start();
    echo "Je vous resouhaite une ".$_SESSION['toto'];
    ?>
    et là paf, je n'ai pas la valeure de la session.

    J'ai ouvert me dossier contenant les fichiers des sessions, 2 ont été crée la première contient bien "bonne année" et le second est totalement vide.

    Le fichier php.ini a bien
    Registar_global = off

    Merci de l'aide que vous pourrez m'apporter.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Controle que le repertoire de sessions est bien créé est accessible.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Merci de ta réponse sabotage.

    Conscernant le dossier, il est crée puisque je l'ai consulté et que j'ai vu que deux sessions sont crées, la première contenant la variable, et la seconde vide.

    (je me perds dans les genres ).

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Affiche ton SID entre les deux pages.
    S'ils sont différents, vérifie que le TransID est bien activé.

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    les deux id de variables sont différents.

    Je me renseigne sur TransId.

    Encore merci de ton aide sabotage !

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    session.trans_sid etait sur 0. J'ai basculé sur 1, et il apparait en on sur le phpinfo.

    Un retour sur mes fichiers de tests m'ont confirmé que c'était la source du problème.

    Merci à toi sabotage, t'es un chef !

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Bon finalement cela ne marche pas

    Cela fonctionne pour les fichiers de tests, mais pas pour le sites en place.

    Et vu que je connais pas les scripts, va falloir se plonger dans le mer***. Surtout que ces sites "fonctionnaient" avant.

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    En fait les données de la session sont perdus lors de la redirection, utilisant header();

    on peut "contrer" se problème en ajoutant l'id de la session a la fin de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: index?".SID);
    Mais cette solution me convient pas : j'ai bien trop de page à editer !

    Quelqu'un connait-il un autre moyen ?


    [edit] Un petit code pour aider à comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?
    session_start();
    $_SESSION['toto']="bonne annee";
    header ('Location: zozo2.php');
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?
    session_start();
    echo "LA valeur de la session sur la seconde page vaut :".$_SESSION['toto'];
    ?>
    toto n'est pas transmit

    Merci de m'aider

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Note: L'ID de session n'est pas passé avec l'en-tête Location même si session.use_trans_sid est activé. Il doit être passé manuellement en utilisant la constante SID.
    http://us.php.net/function.header

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    je suis bien d'accord, mais je rétablis le backup de nombreux sites web, pas très très à jour.

    Mon but est pas d'éditer 30k fichiers php à la recherche de tous les redirections par headers mais simplement de faire re "marcher" ce bordel de pages.

    J ne comprends pas pourquoi avant cela fonctionnait de cette façon et plus maintenant. Y a t'il de grosses différences au niveau des sessions entre PHP 4.4.4 et 4.4.9 ?

    Bref merci de ta réponse sabotage.

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'apres la doc, ca s'applique a toutes les versions de PHP.

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Bon ben marde alors

    Mais toi tes redirections tu les fais comment ?
    Car sur un autre server de la boite (toujours sur windows 2k3) c'est codé de la même façon, et j'ai fais pareil sur un server liux sans soucis.

    Et d'après mes recherches, on dirait que c'est preque un bug aléatoire :p. Certaines personnes l'ont, d'autre non, certains utilisent session_write_close() et ça résout le problème, pour d'autre non.

    Bref cay la maaaarde !!!!

Discussions similaires

  1. [MySQL] Perte des variables de session
    Par jcaspar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/07/2010, 16h57
  2. Perte des variables de sessions
    Par Bizoo dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2010, 12h12
  3. Perte des variables de session aléatoire
    Par dnkz dans le forum Langage
    Réponses: 1
    Dernier message: 25/04/2008, 16h27
  4. Réponses: 5
    Dernier message: 01/05/2007, 14h22
  5. Perte des variables de sessions
    Par Dayom dans le forum Langage
    Réponses: 12
    Dernier message: 17/07/2006, 11h04

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