Zend_Session_Namespace和setExpirationSeconds

时间:2012-06-03 07:00:10

标签: zend-framework zend-session

我在Zend_Auth会话上设置超时有问题这是我的代码:

$authSession = new Zend_Session_Namespace('Zend_Auth');
$authSession->setExpirationSeconds(60*60*24*1);

此代码应使会话在1天后过期,但实际会话在约30分钟后到期。谁知道什么是错的?谢谢。

1 个答案:

答案 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

的第4段