Conflit de session entre membres
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 :
Code:
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 |
C'est appelé dans le bootstrap de la manière suivante
Code:
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)); |
Dans mon controleur login appelé sur toutes les pages, j'ai dans le init
Code:
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;
} |
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:
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; |
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 ?