目前,我正在撕裂我的头发试图通过数据库基础会话持续验证。 我已经设置了Zend_Session使用一个数据库,并在检查,Zend公司值写入到数据库中。然而,对于那些会话ID似乎并不匹配PHPSESSID - 然而,当我得到了Zend_Session返回ID - 它返回一个匹配值。

所以 - 我在DB我有:

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

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

然而,如果我打电话从Zend的会议本身...的ID

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

我假定被Zend会话生成的ID必须匹配PHPSESSID的,正确?

下面是我的引导

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

我将永远感激,如果有人能在这一个闪耀光芒的人......

有帮助吗?

解决方案

好吧,我狼狈。我改变了表类型InnoDB和现在的作品。

在我的防守 - 在主文档中并没有规定InnoDB的:的 http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html

,而这里它的作用: HTTP://framework.zend。 COM /维基/显示/ ZFPROP / Zend_Session_SaveHandler_DbTable?showComments =假

我祈祷这就是固定它。也许当地的错误在我的Apache?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top