Zend_Session_SaveHandler_DbTable nicht gültige Session-ID zu erzeugen?
-
19-09-2019 - |
Frage
Ich bin reißen derzeit meine Haare aus versuchen, die Authentifizierung über eine Datenbank-Basen-Sitzung zu bestehen. Ich habe Zend_Session eine Datenbank zu verwenden, und bei der Inspektion wird Zend Werte in die Datenbank zu schreiben. Jedoch scheint die ID für diese Sitzungen nicht die PHPSESSID zu passen - aber wenn ich Zend_Session bekommen die ID zurückzukehren - es gibt einen passenden Wert.
So - in meiner DB hat ich:
ID.....MODIFIED.......LIFETIME...DATA
344..1265640083.......1440.......BLAH
Doch wenn ich die ID von Zend Session nennen sich ...
$id = Zend_Session::getId();
echo $id; // mbgspg2gvf1c3r9l7qpv6orgt4
Ich gehe davon aus, dass die ID, die von Zend Session dass der PHPSESSID übereinstimmen muss, oder?
Hier ist meine 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();
werde ich ewig dankbar sein, wenn jemand etwas Licht auf diesem verschütten kann ...
Lösung
Nun, ich bin flummoxed. Ich änderte den Tabellentyp InnoDB und jetzt funktioniert es.
In meiner Verteidigung - in der Hauptdokumentation es gibt nicht InnoDB: http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html
, während es hier tut: http: //framework.zend. com / wiki / Anzeige / ZFPROP / Zend_Session_SaveHandler_DbTable? showComments = false
Ich bete das ist, was es festgelegt. Vielleicht ein lokaler Fehler in meinem Apache?