如果用户退出网站,则设置值

时间:2011-07-09 13:14:09

标签: php mysql mysql-management

继承人我有一个问题。当用户登录网站时,它会设置一个值以指示它们处于脱机状态。如果他们通过网站注销,则设置该值以指示用户处于脱机状态。

但是如果用户只是在不按下注销的情况下关闭网站,它仍然表示他们在线。

我怎样才能让它们在关闭网站后让它们脱机。

我的网站使用的是php,html,css和mysql。

4 个答案:

答案 0 :(得分:5)

最常见的方法是使用用户的上一个活动而不仅仅是“在线”标记来保存时间戳。更新每个活动的时间戳,并通过检查已停用超过五分钟的用户来计算离线用户。

出于性能原因,您可能还希望将时间戳保存到用户当前会话中,并且仅在数据库即将过期时更新您的活动时间戳。

答案 1 :(得分:4)

由于关闭浏览器(或浏览器标签页)不会向您的服务器发送任何事件,基本上您无法对此作出反应。在这种情况下,我更喜欢心跳机制。

另一种方法是“假设”客户已经退出,如果他没有解雇任何事件,因为我们说20分钟左右。

此处讨论了类似的问题:Check if user is offline

答案 2 :(得分:2)

例如,您可以检查用户是否正在通过Ajax“回答”。或者您可以通过不活动超时将状态设置为脱机。

答案 3 :(得分:0)

当浏览器关闭时,可能会有一些javascript事件,你可以在服务器上使用ajax发送通知。

我猜的更好的方法是让客户端的javascript定期通知服务器用户仍在那里。一旦收到通知 - 他必须离线。