Zend Session不会在窗口关闭时被破坏

时间:2011-09-12 10:14:30

标签: zend-framework

我的Zend会话(我正在使用Zend_Session_Namespace)在窗口关闭时不会被破坏。我认为这是默认行为,我真的很喜欢它。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

检查并删除application.ini文件中的任何代码

remember_me_seconds = 864000 

在登录控制器中使用以下代码,然后它应该可以正常工作。

$remember=$form->getValue("remember")
if ($remember=="yes") {
$seconds=60 * 60 * 24 * 30; (remember for 30 days)
Zend_Session::RememberMe($seconds);
}
else {
Zend_Session::ForgetMe();
}

答案 1 :(得分:1)

我不知道这是否有所帮助,但现在就去了。

有两种方法可以“摧毁”会话。

  1. 在客户端 - cookie
  2. 在服务器端 - 会话命名空间
  3. 浏览器窗口关闭时,浏览器上的会话并未真正销毁。会发生什么是浏览器将删除cookie。当浏览器再次访问您的站点时,它不再具有cookie并且必须获得新会话。

    如果您将会话的“生命周期”设置得非常短,那么会在服务器上快速删除会话。即使带有cookie的浏览器出现,如果服务器上没有匹配的会话,那么它最终会得到一个新的会话。

    您必须找到一种方法来设置cookie参数,该参数告诉浏览器在窗口关闭时将其删除。我不确定rememberMe()函数的作用部分,无论是cookie还是服务器上的会话。

    如果设置此参数,浏览器将在关闭窗口时删除cookie,并且您将在浏览器端“删除”该会话。