Zend_Session_SaveHandler_DbTable没有生成有效的会话ID?

时间:2010-02-08 15:03:36

标签: php database zend-framework session zend-session

我正在试图通过数据库库会话继续进行身份验证。 我已经将Zend_Session设置为使用数据库,并且在检查时,Zend正在将值写入数据库。但是,这些会话的ID似乎与PHPSESSID不匹配 - 但是当我让Zend_Session返回id时 - 它返回一个匹配的值。

所以 - 在我的数据库中我有:

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

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

然而,如果我从Zend Session本身调用id ...

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

我假设Zend Session生成的ID必须与PHPSESSID的ID匹配,对吗?

这是我的引导程序

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

如果有人能对这一点有所了解,我将永远感激......

1 个答案:

答案 0 :(得分:1)

嗯,我很沮丧。我将表类型更改为InnoDB,现在它可以正常工作。

在我的辩护中 - 在主要文档中没有指定InnoDB:http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html

而在这里:http://framework.zend.com/wiki/display/ZFPROP/Zend_Session_SaveHandler_DbTable?showComments=false

我正在祈祷这就是修复它的原因。也许是我的Apache中的本地错误?

相关问题