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

War es hilfreich?

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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top