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

AJAX Discussion :

[AJAX] Variables $_SESSION perdues


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 90
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 33
    Par défaut [AJAX] Variables $_SESSION perdues
    En P.J. un mini-micro projet pour tester mon problème
    J'utilise JQuery ((ici 1.3.2 - test avec 1.4.2)
    Tests avec PHPEdit et XDebug dans Firefox (cookies autorisés)

    J'ai découvert mon problème dans un essai avec JQueryUI Tabs que j'ai pu mettre hors de cause (avec l'aide du forum jQuerUI)

    En pratique une page index.php initialise une session et affiche le contenu de la variable créée $_SESSION('user']
    En fin de chargement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $(document).ready(function(){
    	ValidSession();
    });
    ValidSession() recouvre un appel $.Ajax à la page SessionTest.php avec une variable POST de contrôle de la communication.
    SessionTest.php reçoit bien la varaible POST mais ne retrouve pas la variable $_SESSION('user']

    Quelq'un aurait-il une idée de l'endroit où je me plante ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 90
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 33
    Par défaut De quel script parlez-vous ?
    Ma pièce jointe était un micro-projet réduit à sa plus simple expression et ne comportant que les lignes de code mettant en évidence le comportement dynamique tel que je le constatait.
    Il comportait
    - un fichier index.php avec initialisation de la session et le controle de l'efficacité de cette initialisation en relisant la variable initialisée - ,
    - un fichier d'action javascript déclenchant l'appel à un script auxiliaire dans le quel je ne retrouve pas ma session,
    - et le minimum de css pour le test dynamique se fasse dans des conditions visuelles supportables.
    Soit 5 fichiers de 1ko chaque comportant chacun en dehors des en-têtes une moyenne de 5 lignes de code.
    Dans le fichier .zip le plus gros du volume était constitué par le fichier utilitaire jquery 1.3.2 que j'utilise pour déclencher le passage d'une page à l'autre.
    J'avais fait les efforts pour que mon problème ne vous soit pas transmis comme un extrait de code ésotérique lié à des pratiques n'ayant rien à voir avec la question.

    Pour ce qui est de l'erreur de codage signalée, je ne sais pas dans quel fichier ni à quel endroit vous l'avez trouvée.
    Et pour ce qui est du session_start, oui, bien sûr il figure en première ligne de ces deux fichiers comme de tous les autres utilisant des varaibles de session dans mes projets pratiques précédents.

    Le problème est que tout d'un coup le mécanisme que j'utilise depuis longtemps se bloque sans que j'arrive à comprendre pourquoi ! .... et il se bloquait même dans ce cas allégé à en perdre quasiment sa substance.

    Merci quand même de vos efforts pour m'aider. Je vais continuer à chercher

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 90
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 33
    Par défaut Le mystere s'épaissit !
    J'ai modifié ce mini-projet qui était en zip en ajoutant un dexième fichier de test de session. Soit SessionTest1 et SessionTest2 au lieu du seul SessionTest (renommé en SessionTest2)
    SessionTest1 est appelé par la commande javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open(lSessionTest1.php , '', params);
    SessionTest2 est appelé par la même procedure JQuery ajax que précédemment
    Soit 5 lignes de code ajoutées réparties dans les differents fichiers.

    Pour info je rappelle que je travaille XDebug dans PHPEdit et que je visualise mes variables de session dans les observateurs du debugger.

    Surprise ! Je retrouve mes variables de session dans les deux scripts de test !

    J'ai rechargé le projet d'origine qui était zippé en pièce jointe (mais supprimé de ce forum !). Il ne marche toujours pas !!!!!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 90
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 33
    Par défaut La solution ?
    J'ai trouvé sur
    http://php.developpez.com/cours/sess...=page_3#LIII-G
    une remarque très éclairante !!!!

    Il ne faut jamais utiliser unset() directement sur $_SESSION, cela rendrait impossible l'accès aux variables de la session courante jusqu'à sa fermeture.

    Et justement croyant bien faire pour nettoyer mon tableau de variables de session, mon fichier index comportait ce malheureux :
    En le modifiant (voir ci-dessus) je l'ai (àvrai dire par inattention !) supprimé !
    D'où le fonctionnement rétabli

    Merci en tous cas pour vos provocations à réfléchir, et pardon pour mes accès de mauvaise humeur !

    Charles

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut


    L'essentiel est que tu ais corrigé et compris le problème

    A+

Discussions similaires

  1. [AJAX] Variable $_SESSION via ajax
    Par lecer dans le forum AJAX
    Réponses: 0
    Dernier message: 17/09/2014, 16h55
  2. Variable $_SESSION automatisé
    Par mangafan dans le forum Langage
    Réponses: 8
    Dernier message: 18/04/2006, 16h45
  3. [Sécurité] variable $_session dans du javascript
    Par sam01 dans le forum Langage
    Réponses: 2
    Dernier message: 09/04/2006, 19h38
  4. [AJAX] AJAX | variable golbal
    Par toxyko dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/03/2006, 10h43
  5. Changer une variable $_SESSION -> Formulaire
    Par Nadd dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2006, 23h37

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