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

时间:2012-03-13 15:23:17

标签: php

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

我想知道谁也在网上。

  1. 当浏览器关闭时,会话将自动销毁。
  2. 我也使用显式注销命令。
  3. 按“退出”按钮可以处理在线用户的数量,从而减少处理在线用户数的文件“nouser.txt”中的计数。
  4. 所以我想知道的是,如果用户在没有按“注销”的情况下关闭浏览器,虽然session_destroy()隐式清除了登录,我想减少nouser.txt中的在线用户数量文件

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

2 个答案:

答案 0 :(得分:1)

最好是在页面关闭时进行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>

答案 1 :(得分:0)

非常感谢Dudes的尝试。

我终于通过搜索各种论坛的构建结构来实现,我得到了总是在线跟踪用户的数量。

因此,当用户登录时(例如30天计划),在他的名字中设置一段时间的标志,然后删除。因此,任何在线论坛中显示的用户数量始终是不准确的。 :)

我的PHP老师(my-brain,lol)也证实了这一点,他说:“只要cookie或会话保持开启,用户就被视为在线”。

但我还有一个问题。他们如何在谷歌,雅虎,Facebook上线时跟踪用户......

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

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

再一次,感谢尝试的人,记住理论。

度过美好的一天。