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 ...

Était-ce utile?

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?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top