Non Zend_Session_SaveHandler_DbTable generando valida ID di sessione?
-
19-09-2019 - |
Domanda
Al momento sto strappando i capelli fuori cercando di persistere l'autenticazione tramite una sessione basi di database. Ho impostato Zend_Session utilizzare un database, e in materia di ispezione, Zend sta scrivendo i valori alla base di dati. Tuttavia, l'ID per queste sessioni non sembra corrispondere al PHPSESSID - eppure quando arrivo Zend_Session per restituire l'ID - restituisce un valore corrispondente.
Così - nel mio DB ho:
ID.....MODIFIED.......LIFETIME...DATA
344..1265640083.......1440.......BLAH
Ma se io chiamo l'id da Zend sessione stessa ...
$id = Zend_Session::getId();
echo $id; // mbgspg2gvf1c3r9l7qpv6orgt4
Sto assumendo che l'ID generato da Zend sessione deve corrispondere a quello del PHPSESSID, giusto?
Ecco il mio 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();
Sarò eternamente grato se qualcuno può far luce su questo ...
Soluzione
Bene, sono sconcertato. Ho cambiato il tipo di tabella di InnoDB ed ora funziona.
In mia difesa - nella documentazione principale non specifica InnoDB: http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html
mentre qui lo fa: http: //framework.zend. com / wiki / display / ZFPROP / Zend_Session_SaveHandler_DbTable? showComments = false
sto pregando che è quello riparato. Forse un bug locale nella mia Apache?