我正在使用Zend Framework for PHP,并使用Zend_Session模块处理会话。这是我的初始化器(或引导程序)中的内容:
Zend_Session::start();
Zend_Session::rememberMe(864000);
864000秒应该可以使用10天,但是我仍然被大约一个小时(甚至更少一点)踢了出去。我已经测试过将该语句设置为10秒,以查看该语句是否完全起作用,的确在适当的时间将我踢了出去,但是当我将其设置为非常高的值时,它将不起作用!我在这里浏览了一些文档:
http://framework.zend.com/manual/en/zend.session.html
我看到的另一种方法是使用以下方法:
$authSession = new Zend_Session_Namespace('Zend_Auth');
$authSession->setExpirationSeconds(3600);
现在,我有不同的名称空间。这是否意味着如果要防止它们过期,就必须为所有这些参数设置此设置?我还没有测试过设置过期时间的方法,但是我真的很想看看这里的专家对解决这个问题的正确方法是怎么说的。非常感谢你们...
另外,有人知道我该怎么做,以便会话永不过期吗?我尝试将第二个设置为0和-1,但这会引发错误。
最佳答案
您的客户端的计算机时钟,日期和时区需要正确设置才能使会话过期。否则,时间转换将关闭,并可能导致您的Cookie在点击其浏览器的那一刻过期。