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] Transmission de variables de sessions et Javascript asynchrone


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [AJAX] Transmission de variables de sessions et Javascript asynchrone
    Bonjour tout le monde,

    Je vous explique mon problème (pas bien complexe)

    dans mon fichier index.php, j'affiche une page de connexion qui transmet en POST les variables d'un formulaire à une page accueil.php qui elle, s'occupe d'ouvrir une session, de récupérer les données de l'utilisateur en BDD et de construire un objet Personne que j'associe à une variable de Session $_SESSION['Personne'].

    Le probleme est que dans cette page accueil.php, j'ai un div qui se rafraichit en utilisant AJAX (innerHTML) et que quand je souhaite utiliser ma variable de Session dans la page qui rafraichit mon div, je me rend compte qu'elle n'existe pas !

    Donc en fait ma question est : comment faire ? j'ai lu sur ce même forum qu'on pouvait passer en méthode GET dans ma fonction ajax le parametre :
    <?php echo session_name().'='.session_id();?> mais ca ne marche pas :'(

    Merci d'avance pour vos réponses

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    un simple session_start(); ne suffirait pas? (voire @session_start(); si tu intègres déjà ta page avant l'appel Ajax)

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    As tu bien pensé à annoncer session_start() sur toutes les pages php ? car sinon les variables de session disparaissent.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    oui biensur j'ai mis un session_start() sur toutes mes pages et en début, d'ailleurs je fais un simple lien à un moment vers une autre page et sur cette dernière j'arrive à récupérer la variable de SESSION.

    Par contre sur les pages que j'ouvre avec AJAX (echo $_SESSION['Personne']->get_nom(); , l'erreur suivante s'affiche : Undefined index 'Personne' u___u

    un simple session_start(); ne suffirait pas? (voire @session_start(); si tu intègres déjà ta page avant l'appel Ajax)
    je connaissais pas @session_start(); :o
    Ceci étant en effet, j'intègre le session_start avant tout appel d'ajax donc j'ai essayé ta syntaxe mais toujours le même résultat, la variable de session n'existe plus après le moindre appel d'ajax.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    ta variable de session est un objet?

    Si c'est le cas n'oublies pas de faire un serialize pour l'enregistrer puis un unserialize pour la récupérer... ça vient peut-être de là...

    EDIT
    @session_start(); est un truc super crade pour éviter de recevoir une erreur fatale si tu ouvres une session alors que tu en as déjà une ouverte... Il y a un moyen plus propre de contrôler l'ouverture des sessions mais ça fait des plombes que j'ai pas réussi à le retrouver... ^^'

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    euh je viens d'essayer avec une variable de Session non objet et le résultat est le même.

    Je crois bien que je vais devoir faire un méga GET, relativement navrant

    En tout cas merci d'essayer de m'aider c'est fort sympa

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Probleme Résolu

    Je viens de remarquer que finalement, mon menu géré en AJAX (rafraichissement d'un div à chaque click sur un bouton) était composé d'un bouton QUITTER avec un lien simple vers ma page de connexion associé au listener onClick qui en php faisait un "session_destroy()" or il s'avère que l'action onClick de ce bouton ne se réalisait uniquement que l'orsque la page de connexion était chargée et comme à cette derniere je faisais un "session_start()" badaboom plus de variable de sessions :p

    donc finalement les variables de sessions marchent bien même en AJAX et même pour des variables de sessions contenant des objets non sérializés

    EDIT : ce que je croyais être un probleme d'ajax se révèle être un problème de PHP donc merci de bien vouloir déplacer le sujet.

    En espérant que cela puisse servir à quelqu'un

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

Discussions similaires

  1. Transmission de variable de session
    Par fab76000 dans le forum Langage
    Réponses: 3
    Dernier message: 15/01/2008, 21h31
  2. [AJAX] Transmission de variable, j'ai pas tout compris
    Par msg_dracula dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/07/2007, 00h15
  3. variable de session et javascript
    Par tommey dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/08/2006, 17h28
  4. Réponses: 2
    Dernier message: 29/06/2006, 09h26
  5. [WebForms]Comment utiliser une variable de session depuis JavaScript ?
    Par ThunderBib dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 05/05/2006, 14h01

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