在线人数的统计方法

*******author:fibona 熊祥众

********date:2004-7-30

********功能:在线人数统计方法:*/

写得比较详细,不过我给你一个比较有用的思考(一种方法吧):

先在数据库中用户表中增加一个字段,用户最后活动时间比如说 lastactive字段。采用unix时间形式存放简单一些。

判断用户在线可以用如果最后活动时间与当前活动时间的差在两分钟之内的就算在线。
$sql="select count(*) as cnt from user_table where lastactive+120<time()";

用户注销时把其的最后活动时间进行更新为:
$sql="update user_table set lastavtive= (time()-300) where user_name='user_name"";改成变成比当前时间早5分钟的时间。以便于用户注销时用户再登录出现无法登录的情况。

然后通过页面的meta元素每一分钟刷新一次页面,对用户记录进行更新:
$sql="update user_table set lastactive=time() where user_name='user_name"";

好了基本上完成了,再加一个用户登录时的判断:
如果他在线的话就不再进行登录并给出友好提示:
$sql="select * from user_table where user_name='user_name"and lastactive+60>=time();//因为是一分钟更新一次所以加个60。
执行查询,如果得到结果就判断为他在线并给出提示:
同一时间不能两次登录。并退出。
如果 没有结果就进行登录,并采用session进行注册等。这都是比较简单的了。

好了一个完整的在线人数统计就这样完成了。

你可能感兴趣的:(方法)