在浏览器关闭时清除PHP会话

时间:2012-08-24 10:13:17

标签: php

嘿,伙计们,任何人都可以让我摆脱困境。我只是检查浏览器关闭事件,如果用户关闭浏览器或关闭同一站点的所有选项卡,则销毁php会话。

我使用了一些脚本,但它们在页面刷新时破坏了会话(F5或CTRL + R或浏览器刷新按钮)。

我只需要检查浏览器关闭按钮或ALT + F4 ..

简而言之,当用户完全关闭浏览器或关闭所有标签时,使用AJAX调用php函数。

4 个答案:

答案 0 :(得分:4)

用户关闭浏览器后,应立即自动丢弃会话。除非有某种“记住我”功能。

答案 1 :(得分:1)

无法保证您的服务器可以知道用户已关闭浏览器 - 请勿尝试实现此目的。

当用户关闭浏览器时,会话将自动丢失,因为浏览器不会保留用于将自身与生成的PHP会话关联的cookie。但同样,这不是必然保证的。你可能需要问一个不同的问题。

答案 2 :(得分:1)

PHP Session工作就是这样:

它为每个实例存储静态变量类型的数组,并通过将哈希值存储为名为 PHPSESSID 的Cookie来标识会话变量。

Cookie生命周期是在浏览器打开时,浏览器关闭时Cookie被丢弃。

某些浏览器可以存储Cookie Forever,但Session在服务器端有超时。

你可以在Browser Close上运行一个函数的情况是不可能的,因为Browser Kill在Exit上都运行了JavaScript。

答案 3 :(得分:0)

当浏览器关闭时,会话会自动销毁,你还想做什么?