2012-05-09 109 views
0

我正在开发php项目。所有我想这样做,当我关闭浏览器如此未设置或销毁会话。如何在mac os中关闭浏览器时销毁会话?

在这里,我也尝试

的ini_set( 'session.cookie_lifetime',0)和session_set_cookie_params(0)在session_start之前();

它的正常工作在Windows操作系统而不是在MAC OS。

在此先感谢。

+0

你使用什么浏览器? –

+0

铬和火狐 – nic

+0

你**也试过**代码。那之前你曾尝试过什么?你打算在技术上做什么?你想使用哪些cookie规范的功能?你知道有一个cookie规范吗? – hakre

回答

4

会话有两部分。

  1. 存储在服务器
  2. 客户

有删除服务器上的数据在浏览器关闭时没有可靠的方法与会话ID该Cookie上的数据。每个理智的会话系统都会定期清理旧数据(如果N分钟内没有关联浏览器的标志)。

在浏览器上该Cookie通常被发送而不的到期时间,这意味着当浏览器退出时将过期。这可靠地工作。

如果不管你有做你想在Windows客户端,那么我会认为你是在谈论到期的饼干。

这将发生在Mac以及Windows。我最好的猜测是你的测试存在问题。在Windows上,应用程序通常在最后一个窗口关闭时退出。在Mac上,应用程序通常要求您明确地退出它们,但如果您只关闭最后一个窗口,则应保持打开状态。

为了确保cookie过期,您必须明确退出浏览器(通过从菜单中选择退出或右键单击并选择Dock中图标的退出)。

有没有办法为,当最后一个窗口已关闭服务器来检测和远程终止会话。

1

它在Windows

工作正常,这或多或少意味着它的工作原理。

但不能在Mac OS

工作,这可能是一种误解。您需要关闭所有浏览器窗口,以便浏览器销毁会话Cookie。很可能您只关闭了多个窗口中的一个,并且至少有一个浏览器实例仍然存在(您可以在终端窗口中使用top来检查该类型的事情)。

相关问题