如果选项卡已关闭,则自动注销

时间:2013-08-01 14:35:11

标签: php

如果他/她已关闭标签(他/她已登录帐户的标签页),我将如何自动将用户记录下来。 我知道有可能使用cookies,但我们如何通过Sessions实现这一目标?

2 个答案:

答案 0 :(得分:7)

您无法保证在窗口关闭时用户将被注销,因为您正依赖页面正常关闭。如果浏览器硬崩溃,Javascript将无法执行。

我建议在AJAX上实现Javascript代码,调用窗口卸载的注销页面,这在大多数情况下都会有效。

对于其他情况,您应该降低会话超时限制。

答案 1 :(得分:5)

取决于你想要的严格程度。

如果您需要“即时”注销,那么最简单的方法是使用AJAX来ping您的服务器,每次让我们说30秒 - 1分钟以保持会话处于活动状态。 这会在您的服务器上造成大量开销增加负载,但唯一可靠的方式可以立即让某人离开。

同样的原则适用于更长的时期。比方说30分钟吧。您可以在30分钟后执行this topic记录某人中的内容,或者每隔10-15分钟再次使用AJAX ping服务器并保持当用户在页面上时,会话活着

可能没有更多。

就像@thatidiotguy所说,你可以实现窗口卸载事件来处理用户出口,但你必须非常小心 - 如果用户有2个浏览器窗口打开怎么办? 如果他同时查看2页,你不会把他记录下来。