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

È stato utile?

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?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top