我在Zend_Auth会话上设置超时有问题这是我的代码:
$authSession = new Zend_Session_Namespace('Zend_Auth');
$authSession->setExpirationSeconds(60*60*24*1);
此代码应使会话在1天后过期,但实际会话在约30分钟后到期。谁知道什么是错的?谢谢。
答案 0 :(得分:6)
php.ini
中的默认session.gc_maxlifetime值指定会话数据被视为“垃圾”的秒数,为24分钟。
调用Zend_Session_Namespace::setExpirationSeconds()
是Zend Framework的内部函数,对会话cookie本身或服务器上的会话数据没有影响。
确保相应地调整session.gc_maxlifetime
值,以便PHP不会在您希望之前删除数据。您可以直接在php.ini
中设置此设置,也可以在引导程序的某个位置使用ini_set
,或者从ZF application.ini
文件中使用resources.session.gc_maxlifetime = 864000
另见:
persisted login with Zend_Session::rememberMe的第2段
How do I create persistent sessions in PHP?
Zend Framework Automatic Logout after inactivity