Pregunta

Actualmente estoy rasgando mi pelo que prueba que persista la autenticación a través de una sesión de bases de bases de datos. He puesto Zend_Session a utilizar una base de datos, y en la inspección, Zend es escribir los valores de la base de datos. Sin embargo, el ID para esas sesiones no parece coincidir con el PHPSESSID - aún cuando consigo Zend_Session para regresar el id - devuelve un valor coincidente.

Por lo tanto - en mi base de datos que tengo:

ID.....MODIFIED.......LIFETIME...DATA

344..1265640083.......1440.......BLAH

Sin embargo, si llamo a la ID de Sesión Zend sí ...

$id = Zend_Session::getId();
echo $id; // mbgspg2gvf1c3r9l7qpv6orgt4

Estoy asumiendo que el ID generado por Zend sesión debe coincidir con el de la PHPSESSID, correcto?

Esta es mi rutina de carga

    $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();

Yo estaré eternamente agradecido si alguien puede arrojar algo de luz sobre este ...

¿Fue útil?

Solución

Bien, estoy desconcertado. He cambiado el tipo de tabla de InnoDB y ahora funciona.

En mi defensa - en la documentación principal no especifica InnoDB: http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html

mientras que aquí lo hace: http: //framework.zend. com / wiki / pantalla / ZFPROP / Zend_Session_SaveHandler_DbTable? showComments = false

Estoy orando eso es lo arregló. Tal vez un error local en mi Apache?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top