在SESSION_DESTROY上,减少PHP中的在线用户数量


On SESSION_DESTROY decrease the number of online users in PHP

我有一个简单的文件系统ed登录(而不是mysql),只是为了跟踪注册到我的网站的用户数量。

我也想知道谁都在线。

  1. 当浏览器关闭时,会话将自动销毁
  2. 我也使用显式注销命令
  3. 我可以通过按下"注销"按钮来处理在线用户的数量,从而减少文件"nouser.txt"中处理在线用户数量的计数

所以我想知道的是,如果用户在不按"注销"的情况下关闭浏览器,尽管session_destroy()隐式清除了登录,但我想减少nouser.txt文件中的在线用户数量

编辑1:就像在关闭浏览器时处理onSession_Destroy()一样。

最好是在页面关闭时进行AJAX调用。

正如Marc B在评论中建议的那样,您可以使用onbeforeunload事件。

<html>
<head>
<script>
function closeIt()
{
  // Perform your AJAX hit here using your favorite method (jquery or whatever).
}
window.onbeforeunload = closeIt;
</script>
</head>
<body>
  <a href="http://www.google.com">Click here to navigate to 
      www.google.com</a>
</body>
</html>

非常感谢Dudes的尝试。

我终于意识到,通过搜索各种论坛的构建结构,我发现在线用户的数量总是被cookie跟踪的。

因此,当用户登录时(比如30天计划),会在一段时间内以他的名义设置一个标志,然后将其删除。因此,任何论坛上显示的在线用户数量总是一个不准确的衡量标准。:)

我的PHP老师(我的大脑,哈哈)也证实了这一点,他说:"只要cookie或会话保持不变,用户就被认为是在线的"。

但我还有一个问题。当用户在谷歌、雅虎、脸书上上网时,他们到底是怎么追踪到他的。。

我也得到了答案。正如MARC-B和ROYCHRI所说,只要浏览器或浏览器选项卡打开,并且用户最终被cookie跟踪,会话就会保持。

phoo。。。,多么有理论的人。正如我所说,我实际上解决了自己的问题;)我喜欢这样做。

再次感谢你们的尝试,记住这个理论。

祝你今天过得愉快。