Zend_Session_SaveHandler_DbTable ne générant pas ID de session valide?
-
19-09-2019 - |
Question
Je suis actuellement mes cheveux déchirer en essayant de persister l'authentification via une session de bases de bases de données. J'ai mis Zend_Session d'utiliser une base de données et sur l'inspection, les valeurs est en train d'écrire Zend à la base de données. Cependant, l'ID de ces sessions ne semble pas correspondre à la PHPSESSID - mais quand je me Zend_Session pour retourner l'identifiant - il retourne une valeur correspondante.
- dans mon DB je:
ID.....MODIFIED.......LIFETIME...DATA
344..1265640083.......1440.......BLAH
Pourtant, si je l'appelle l'id de session Zend lui-même ...
$id = Zend_Session::getId();
echo $id; // mbgspg2gvf1c3r9l7qpv6orgt4
Je suppose que l'identifiant généré par session Zend doit correspondre à celle de la PHPSESSID, correct?
Voici mon bootstrap
$dbAdapter = $resource->getAdapter();//connection is tested and working
Zend_Registry::set("db", $dbAdapter);
$config = array(
'name' => 'sessions',
'primary' => 'id',
'modifiedColumn' => 'modified',
'dataColumn' => 'data',
'lifetimeColumn' => 'lifetime',
'db' => $dbAdapter
);
Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
Zend_Session::start();
Je serai éternellement reconnaissant si quelqu'un peut faire la lumière sur celui-ci ...
La solution
Eh bien, je suis déconcerté. J'ai changé le type de table InnoDB et maintenant il fonctionne.
Dans ma défense - dans la documentation principale ne précise pas InnoDB: http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html
alors qu'ici il fait: http: //framework.zend. com / wiki / affichage / ZFPROP / Zend_Session_SaveHandler_DbTable? showComments = false
Je prie c'est ce qu'il fixe. Peut-être un bug local dans mon Apache?