Bonjour,
J'ai un gros soucis lié aux sessions sur mon site, il arrive parfois qu'on se retrouve connecté à la place d'un autre membre. Cela arrive après un changement de page quand on est déjà logué.
Ce problème n'arrive pas systématiquement, mais des membres se plaignent régulièrement de ce problème.
J'ai configuré les sessions avec :
C'est appelé dans le bootstrap de la manière suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 [dev] use_cookies = on use_only_cookies = on use_trans_sid = off strict = off remember_me_seconds = 0 cookie_lifetime = 0 name = monsite_session gc_divisor = 1000 gc_maxlifetime = 86400 gc_probability = 1 [prod : dev] cookie_domain = .monsite.com remember_me_seconds = 0 cookie_lifetime = 0 gc_divisor = 1000 gc_maxlifetime = 3600 gc_probability = 1
Dans mon controleur login appelé sur toutes les pages, j'ai dans le init
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 /* SESSION */ $config = new Zend_Config_Ini(APP_PATH.'/config/session.ini', APP_MODE); Zend_Session::setOptions($config->toArray()); // Partage (et création ou restauration) de l'objet de session dans le registre // Ce premier appel à new Zend_Session_Namespace démarre la session PHP Zend_Registry::set('session', $session = new Zend_Session_Namespace($config->name));
et au moment du login après la vérification du login / mot de passe, j'enregistre en session de la manière suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 /** * Appelel à la construction : instancie Zend Auth */ public function init() { $this->_auth = Zend_Auth::getInstance(); $this->view->auth = $this->_auth; }
Je ne comprends pas d'où peut venir le problème, est ce que ça pourrait avoir un lien avec les sous domaines et un conflit de session entre eux ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 /* on récupère les données du membre et les stocke en session */ $res = $dbAdapter->getResultRowObject(array('idmembre', 'pseudo', 'email', 'pays')); $userNamespace = new Zend_Session_Namespace('user'); $userNamespace->idmembre = $res->idmembre; $userNamespace->pseudo = $res->pseudo; $userNamespace->email = $res->email; $userNamespace->pays = $res->pays;
Partager