Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2010, 17h26   #1
Invité régulier
 
Inscription : avril 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 25
Points : 7
Points : 7
Par défaut Perte de session utilisateur

Bonjour à tous,

Je suis en train de développer une application avec Symfony et je me rends fou depuis plusieurs heures à cause des sessions de l'utilisateur qui sont soi-disant gérées toutes seules...
En fait mon problème est le suivant :
Dans l'action de ma page principale (page d'accueil), je définis un certain nombre d'attributs à l'utilisateur comme par exemple $this->getUser()->setAttribute('user_id', 1) mais lorsque je veux récupérer ces attributs avec $this->getUser()->getAttribute('user_id'), j'ai une erreur car il ne trouve aucun attribut en session
Dans la barre de debug Symfony, je vois qu'il n'y a aucun attribut alors que je les ai bien dans ma page d'accueil...
attributeHolder:
symfony/user/sfUser/attributes: { }


Juste une petit info supplémentaire : je ne rencontre ce problème que sous Internet Explorer (comme par hasard... )
Est-ce que quelqu'un sait d'où ça peut venir afin de me sauver la vie ?

Merci beaucoup !
stephdemars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 21h53   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Tu développes et test sur la même machine ?

Quel est l'état des sessions dans apache ?

As-tu vérifié la configuration de ton ie ? voir s'il ne raccourcis pas artificiellement la vie des sessions ?

J'ai du mal à comprendre ton système de paramètres sur la pages principal, sans vérifications ultérieur, niveau sécurité, quid si un utilisateur passe directement à une page, sans passer par la page d'acceuil ? Symfony possède des outils pour gérer la sécurité, il serait peut-être intéressant de les utiliser.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 09h44   #3
Invité régulier
 
Inscription : avril 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 25
Points : 7
Points : 7
Merci pour ta réponse !

Oui je développe et teste sur la même machine mais j'ai fait tester à d'autres personnes sur différentes machines et le problème est le même... Sauf qu'en local ça marche de temps en temps et c'est en prod qu'on rencontre tout le temps ce problème (j'ai un hébergement mutualisé chez OVH) avec IE mais aussi Safari (parce que les 2 bloquent par défaut les cookies...).

En fait je développe une appli Facebook donc l'utilisateur arrive sur ma page principale où je l'associe à un utilisateur de ma BDD si ce n'est pas sa 1ère visite sinon je l'enregistre. Ensuite je passe en session son id, son score, ... pour pouvoir récupérer ces données dans d'autres pages sans avoir à aller chercher constamment dans la BDD. Mais si tu connais une solution plus cohérente/rigoureuse, je suis preneur
stephdemars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 12h16   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Tu n'as que deux solutions.

Obliger tes utilisateurs à accepter les cokies, le tester et les virer s'ils n'acceptent pas.

Modifier le paramétrage de symfony pour autoriser la transmission du descripteur de session dans l'url. Attention, ceci diminue notablement la sécurité.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h01   #5
Invité régulier
 
Inscription : avril 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 25
Points : 7
Points : 7
Salut !
Désolé de répondre si tardivement...

Il n'y a pas d'autres solutions que d'obliger l'utilisateur à autoriser les cookies ? C'est pas possible de faire ça... Il n'y a rien de prévu dans le framework qui gère les sessions de façon transparente pour l'utilisateur ?
stephdemars est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 13h18   #6
Membre chevronné
 
Avatar de Herode
 
Développeur Web
Inscription : mars 2005
Messages : 769
Détails du profil
Informations personnelles :
Localisation : France, Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2005
Messages : 769
Points : 788
Points : 788
Comme le dit Michel juste au-dessus :
Citation:
Modifier le paramétrage de symfony pour autoriser la transmission du descripteur de session dans l'url. Attention, ceci diminue notablement la sécurité.
-

Citation:
Ensuite je passe en session son id, son score, ... pour pouvoir récupérer ces données dans d'autres pages sans avoir à aller chercher constamment dans la BDD. Mais si tu connais une solution plus cohérente/rigoureuse, je suis preneur
Je ne connais pas ton application qui a peut-être des spécificités qui t'obligent à faire cela, donc je ne peux répondre que sur le principe. Et sur le principe : oui, il y a une façon bien plus cohérente, rigoureuse et solide de faire cela, c'est... d'aller chercher les données en bdd à chaque page affichée. Sinon, tu prends des risques de sécurité et de désynchronisation des données.
Herode est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h16.


 
 
 
 
Partenaires

Hébergement Web