如何处理在线状态。客人,用户等

时间:2010-07-28 17:12:14

标签: php mysql database-design

什么是跟踪有多少用户和访客在线的最佳方式?我正在建立一个有趣和学习的论坛

现在我在用户表中有一个名为is_onlinelast_access_time的2个字段。

如果当前时间是5分钟或者超过last_access_time,我将is_online设置为零。如果登录用户刷新浏览器,我将其设置为1。

但客人怎么样?我想跟踪有多少客人

另一件非常酷的事情是显示用户正在查看的页面。在页面上,论坛帖子,例如,5位客人,荷马和Shomer正在查看此页面。但是我该如何构建呢?嗯,也许我应该再提出一个问题。

我不知道该怎么做

你有什么建议?

3 个答案:

答案 0 :(得分:2)

我会为此使用cookies。在用户输入时设置cookie(首先检查以确保一个不存在)。为该用户生成唯一ID的简便方法是散列其IP加上当前时间。

$id = md5($_SERVER['REMOTE_ADDR'] . time());

将该ID存储在您的数据库中并使用该ID进行引用

您可以通过在php源代码顶部附近抓取$ _SERVER ['PHP_SELF']或$ _SERVER ['REQUEST_URI']来查看他们正在查看的页面。将其存储在表格中。我将看一下php.net对存储在_SERVER全局中的内容的解释,因为如果你发现你需要更多的文件,那么它应该会有所帮助(ex index.php)。 Found here.

您可能需要拆分用于访问该页面的查询字符串,解析变量以确定他们请求的页面。无论哪种方式,这都可以通过cookie完成,或者只使用一个cookie来存储唯一ID,并使用您的表存储其他所有内容。

答案 1 :(得分:0)

您无法确定用户 正在查看哪个页面,但您可以跟踪他们上次查看的页面。每次向用户发送页面时,都会将该页面的路径记录在与其关联的数据库行中。瞧。

为了保持访客数量,我建议跟踪最近X分钟内某个页面上看到的不同未经身份验证的IP / HTTP用户代理组合的数量。

答案 2 :(得分:0)

我发现这篇关于Web Monkey的文章可能会对你有帮助。

http://www.webmonkey.com/2010/02/how_many_users_are_on_your_site_right_now/