嗨,大家好,有谁能让我解决问题。我只是检查浏览器关闭事件,如果用户关闭了浏览器或关闭了同一网站的所有标签页,则会破坏php会话。关闭浏览器清除PHP会话
我使用了一些脚本,但它们正在销毁页面刷新的会话(F5或CTRL + R或浏览器刷新按钮)。
我只需要使用AJAX来检查浏览器的关闭按钮或ALT + F4 ..
总之调用PHP函数,当用户完全关闭浏览器或关闭所有标签。
嗨,大家好,有谁能让我解决问题。我只是检查浏览器关闭事件,如果用户关闭了浏览器或关闭了同一网站的所有标签页,则会破坏php会话。关闭浏览器清除PHP会话
我使用了一些脚本,但它们正在销毁页面刷新的会话(F5或CTRL + R或浏览器刷新按钮)。
我只需要使用AJAX来检查浏览器的关闭按钮或ALT + F4 ..
总之调用PHP函数,当用户完全关闭浏览器或关闭所有标签。
一旦用户关闭浏览器,会话应自动丢弃。除非有某种“记住我”的功能。
感谢评论,我用记住我的功能,我需要紧密地检查浏览器。 –
如果您使用“记住我”功能,为什么在关闭浏览器后尝试终止登录?这不会使Remember Me功能无用吗? –
有没有办法保证你的服务器可以知道用户已经关闭了他们的浏览器 - 不要试图实现这一点。
当用户关闭浏览器时,会话将自动丢失,因为浏览器不会保留用于将自身与生成的PHP会话关联的cookie。但是,这并不是必然的保证。你可能需要问一个不同的问题。
感谢您的宝贵意见 –
PHP会议的工作是这样:
它存储阵列的每个实例静态变量类型,并通过存储的哈希值作为被叫PHPSESSID一个cookie标识会话变量。
那个Cookie的生命期是在浏览器打开的时候,在浏览器关闭的时候Cookie被丢弃了。
某些浏览器可能存储该Cookie永久,但会话在服务器端有超时。
你可以在Browser Close上运行一个函数的情况是不可能的,因为Browser Kill的所有在运行JavaScript时都退出。
会话cookie的_default_生存期为0,即标记为“客户端会话关闭时删除”。但是_can_可以更改,请参阅http://docs.php.net/session.configuration#ini.session.cookie-lifetime。而且......还有其他的方式来传输会话ID,但他们有其他(和更大的)问题。 – VolkerK
[您尝试过什么?](http://whathaveyoutried.com) – 2012-08-25 01:50:04
无法从网站中检测到浏览器关闭事件。 –
可能重复的[销毁窗口关闭会话?](http://stackoverflow.com/questions/959655/destroy-session-on-window-close) – mplungjan