2012-01-20 56 views

回答

1

使用onunload事件发送Ajax请求到服务器会破坏会话

参见:onunload

+0

似乎会话在Chrome中被销毁,但不在Firefox中 – poojitha

1

通常,当用户代理终止,当最终用户退出,如会议结束网页浏览器程序。但是,您的应用程序可以通过使用永久性Cookie,提供在客户端程序的生命周期之外扩展用户会话的能力。

如果您不使用Zend_Session::rememberMe(),则应在关闭浏览器的所有窗口后将其销毁。

+0

是的,你能告诉我如何销毁会话吗? – poojitha

+0

你在代码中的任何地方使用Zend_Session :: rememberMe()吗? – Oleg

+0

如果你显示你的代码,它会更具信息量。 – Oleg

0

会话变量不会被销毁,直到它过期或您清除浏览器cookie。 当我们在注销之前关闭浏览器时,您会看到同样的问题。

0

您应该在您的php.ini或代码中将session.cookie_lifetime设置为0。

The value 0 means "until the browser is closed." 

http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime

代码:

session_set_cookie_params (0); 
+0

您是否知道Zend Framework中是否有API可以触发该设置? – hakre

+0

http://framework.zend.com/manual/en/zend.session.global_session_management.html#zend.session.global_session_management.forgetme
Zend_Seesion :: forgetMe() – RockyFord

0

我得到了同样的问题,当我使用Zend的记得我的选择,我没有找到解决办法,但有一个好主意,存储会话使用zend db处理程序并通过编写简单的查询删除过期的会话(如果它是cron任务,这是一个很好的解决方案),删除旧的cookie。

有关Zend的会话分贝处理程序,你可以在这里找到更多的信息,

http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html

相关问题