2009-02-20 27 views
5

在我的研究中,找到一种方法让PHP告诉我有多少人在我的网站上“在线”,我发现有一些方法可以“估计”这个。脚本告诉我谁和有多少用户在线

我选择记录网站上发生的所有事情,也出于错误管理的原因,但现在我一直在写我的SQL查询。

Basicly我有“IP”,“用户ID”和“日期时间”数据库和我想,这样的查询会做的伎俩:

SELECT distinct(IP), datetime 
FROM `bigBrother` 
WHERE datetime BETWEEN DATE_SUB(NOW(), INTERVAL 3 MINUTE) AND NOW() 

的问题是,我的网站主要是看并在学校网络上由学生使用,以及......他们都拥有相同的知识产权。

所以问题是,我正在做这件事,我可以从我的数据库中选择两个不同的行,以便我可以整理注册用户(谁将拥有“用户ID” - 其他用户将拥有userid = 0 )?

回答

3

使用Cookie而不是IP地址。

PHP使它的会话机制变得非常简单。在每一个你首先做一个session_start()然后你使用session_id()返回的值作为你可以放入数据库的访问者的标识符。

+0

你能解释一下吗? – Jasper 2009-02-20 09:23:05

2

我创建了一个学校网站的系统,要求这个功能,以及我是如何做到的。

我有用户表,该表中有一个叫田“online_time”

在每一页如果用户登录到该更新了“online_time”到当前时间的函数被调用该用户。 (unixtime)

然后我有一个“谁在线”功能,查看“online_time”,并显示所有用户最近5分钟的在线时间。

编辑的评论:

你可以做同样的功能保存在另一个表中的会话ID,并将其保存的时间。会话ID对于该用户浏览是唯一的,因此您可以在最近5分钟内获得会话ID的活动数量。

session_id() 
+0

我也有这个,管理员也想知道有多少人在线 - 所以我也需要未登录的用户 – Jasper 2009-02-20 09:22:07

相关问题