gpt4 book ai didi

session - Zend Framework - session ID 重新生成,无法保持登录状态

转载 作者:行者123 更新时间:2023-12-02 11:58:56 24 4
gpt4 key购买 nike

我正在尝试使用 Zend Sessions 将 session 存储在数据库中,但是由于某种原因我的 session 消失了。我不确定是否正在执行某些代码来执行此操作或是否执行其他操作。

我注意到 session ID 似乎在登录后短暂时间后重新生成。

即使在我的 htaccess 文件中添加了以下行:

php_value session.auto_start 0

最终结果是我每登录一分钟就退出。

这是我的引导文件中的代码

$config = array(
'name' => 'session',
'primary' => 'id',
'modifiedColumn' => 'modified',
'dataColumn' => 'data',
'lifetimeColumn' => 'lifetime'
);


$saveHandler = new Zend_Session_SaveHandler_DbTable($config);
Zend_Session::rememberMe($seconds = (60 * 60 * 24 * 30));

$saveHandler->setLifetime($seconds)->setOverrideLifetime(true);

Zend_Session::setSaveHandler($saveHandler);
//start your session!
Zend_Session::start();

除了登录时的 Zend_Auth 之外,我没有使用任何其他与 session 相关的功能。

事实上rememberme调用 Session 类的 regenerateID 函数 - 最终结果是我现在每隔几分钟就不断注销。

最佳答案

我认为您可能会遇到此问题,因为您在开始 session 之前调用了 RememberMe。

您必须先启动 session ,否则 RememberMe 将不会执行任何操作,因为它需要一个 session 来设置 RememberMe 时间。

rememberMe调用regenerateId函数,重新生成Id才是真正需要session存在的。

在 session 开始后进行 RememberMe 调用,然后看看它对您有何作用。

如果不是,那么我不知道它可能是什么,因为我的代码看起来与你的类似。

关于session - Zend Framework - session ID 重新生成,无法保持登录状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5963186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com