Pergunta

Atualmente estou rasgando meu cabelo fora tentando persistir a autenticação através de uma sessão de bases de dados. Eu configurei Zend_Session para usar um banco de dados e na inspeção, Zend está escrevendo valores ao banco de dados. No entanto, o ID para essas sessões não parece corresponder ao PHPSESSID - ainda quando eu chegar Zend_Session para retornar o id - ele retorna um valor correspondente.

Assim - na minha DB eu tenho:

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

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

No entanto, se eu chamar o ID do Zend Session em si ...

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

Estou assumindo que o ID gerado pela Sessão Zend deve coincidir com o PHPSESSID, correto?

Aqui está a minha inicialização

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

Eu serei eternamente grato se alguém pode lançar alguma luz sobre este ...

Foi útil?

Solução

Bem, eu estou desconcertado. Eu mudei o tipo de tabela para InnoDB e agora ele funciona.

Em minha defesa - na documentação principal não especifica InnoDB: http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html

enquanto aqui ele faz: http: //framework.zend. com / wiki / display / ZFPROP / Zend_Session_SaveHandler_DbTable? showComments = false

Estou rezando que é o que fixas. Talvez um erro local no meu Apache?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top