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

Symfony PHP Discussion :

Récupération variables en session


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 125
    Par défaut Récupération variables en session
    Bonjour,

    J'essaie de stocker une variable en session (l'id d'un utilisateur) pour l'identifier à chacune de ses requêtes.

    Dans le contrôleur d'entrée sur l'application je fais cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $session = $this->get("session");
    if (!$session->isStarted()){
        $session->start();
    }
    if (!$session->has('idUser')){
        $session->set('idUser', '31414');
    }
    Au contrôleur suivant j'aimerai tout simplement récupérer cet identifiant. Or la session est vide quand je la récupère...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $session = $this->get("session");
    if (!$session->isStarted()){
        $session->start();
    }
     
    if (!$session->has('idUser')) {
        throw $this->createNotFoundException('Vous n\'êtes pas identifié!');
    }
    Du coup l'exception est levée à tous les coups!!

    A noter je n'utilise pas d'identification via les composants d'identification: est-ce la le problème?

    A noter 2 :si je fais un $session = new Session();

    j'arrive à récupérer l'idUSer. Est-ce normal/logique de devoir recréer une nouvelle session à chaque fois?

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Bonjour,

    Je ne pense pas qu'il soit utile d'initialiser toi-même les sessions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $session = $this->get("session");
     
    if (!$session->has('idUser')){
        $session->set('idUser', '31414');
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $session = $this->get("session");
     
    if (!$session->has('idUser')) {
        throw $this->createNotFoundException('Vous n\'êtes pas identifié!');
    }
    Consultes le profiler pour voir ce que tu as en session

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 125
    Par défaut
    Ben effectivement j'ai du virer le $session->start() qui générait des erreurs
    Mais je suis malheureusement toujours obligé de faire :
    $session = new Session(); -
    L'appel à $session=$this->get('session'); me renvoie toujours une session vide de toutes clés (vu dans le profiler).
    Cela me semble fonctionner à l'envers!?

  4. #4
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $session = $this->getRequest()->getSession();
     
    if ( $session->has('lasession') ) {
    ...
    }
     
    ...
    $session->set('lasession', 'blabla );
    ...
    $session->get('lasession');

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 125
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $session = $this->getRequest()->getSession();
    Eh bien c'est bien là que cela me surprend le plus! Cela ne focntionne pas...

    A noter que j'utilise cette fonction pour garder les sessions d'autres applications php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    framework:
       ...
        session:
            storage_id: session.storage.php_bridge
            handler_id: ~
    Est-ce que ça peut venir de là?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 29
    Par défaut
    Ton utilisateur est authentifié je pense. Dans ce cas l'objet UserToken doit sûrement contenir l'information dont tu as besoin

  7. #7
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    Citation Envoyé par MickSou Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $session = $this->getRequest()->getSession();
    Eh bien c'est bien là que cela me surprend le plus! Cela ne focntionne pas...

    A noter que j'utilise cette fonction pour garder les sessions d'autres applications php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    framework:
       ...
        session:
            storage_id: session.storage.php_bridge
            handler_id: ~
    Est-ce que ça peut venir de là?
    en effet c'est étonnant, c'est la méthode officielle !
    désactive la fonction session...bridge et teste pour voir

Discussions similaires

  1. Applet : récupération d'une variable de session
    Par Quentin D dans le forum Applets
    Réponses: 0
    Dernier message: 20/08/2009, 10h48
  2. Réponses: 11
    Dernier message: 15/10/2008, 10h44
  3. récupération de variable de sessions
    Par Junior_jef dans le forum Langage
    Réponses: 8
    Dernier message: 21/03/2008, 15h29
  4. Récupération de variable de session
    Par cel.Saint-Louis dans le forum Langage
    Réponses: 4
    Dernier message: 02/12/2007, 04h17
  5. Réponses: 7
    Dernier message: 23/04/2006, 01h38

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