【问题标题】:Zend_Session_SaveHandler_DbTable not generating valid session ID?Zend_Session_SaveHandler_DbTable 没有生成有效的会话 ID?
【发布时间】:2011-01-14 09:53:57
【问题描述】:

我目前正在努力通过基于数据库的会话来保持身份验证。 我已将 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 匹配,对吗?

这是我的引导程序

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

如果有人能对此有所了解,我将永远感激不尽...

【问题讨论】:

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


    【解决方案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 中的一个本地错误?

    【讨论】:

      猜你喜欢
      • 2011-05-04
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      • 2011-12-29
      • 2019-08-31
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      相关资源
      最近更新 更多