PHP如何计算用户在线时间

PHP如何计算用户在线时间
PHP计算用户在线时间长度的几种方法

下面是几种常用的计算用户在线长度的方法,并根据不同的情况做出相应的选择。

首先,我们介绍了涉及四个字段的数据表结构:

UID:用户ID

session_id:的session_id系统产生的用户登录后,和PHP使用session_id获得()函数

login_time:登录时间

lout_time:登机时间

1。服务设置一个常规轮询脚本。这个方法是在服务器端编写一个定时执行脚本,比如在5分钟内执行。根据数据库中的记录,我们可以判断服务器上仍然存在的每一届session_id。如果有,我们更新lout_time不存在。这也可以准确地计算在线时间,但缺点是,它需要对服务器的控制。否则,它无法设置时间脚本。Linux系统可以实现通过crontab,和Windows系统可以通过计划任务完成。如果你只是买一个虚拟主机,这种方法也不适合你。

2。客户端向服务器发送请求的时候。方法是在用户登录,用户名,session_id,login_time插入一条记录,然后设置一个定时器在JS的客户端,比如每10分钟向服务器发送请求,从而达到更新登出时间,目的当然,设置间隔时间短,数据可能会更准确。但相应的负载系统会更高,这可以根据实际情况设置合适的值。这种方法被广泛应用于网页游戏,因为几乎所有的请求都是Ajax请求的网页游戏,无需刷新页面。刷新页面后,计时器就失去了它的值,这就是这种方法的局限性。

三.当用户处于活动状态时更新注销时间。这样,当用户处于非活动状态或退出时,数据库中自然存在的到达时间,这是本文的重点。

首先,成功的用户登录后,记录它的UID和session_id,呈现时间为登陆时间。现在时间+ 600s作为登出时间插入数据库。

< PHP

UID = { 'uid _session美元美元美元的} = { 'id' }信息;

session_id美元美元'session_id _session { } == session_id();

login_time美元=时间();

lout_time美元=时间()+ 600;

为SQL = 插入member_login(UID,session_id,login_time,lout_time)值。

mysql_query($ SQL);

>

然后,当用户处于活动状态时,即单击页面时,如果会话存在或处于登录状态,则它将更新用户的登机时间。

< PHP

如果($ _session { 'uid ' }){

美元美元'uid_session UID = { };

session_id美元美元'session_id_session { } =;

lout_time美元=时间()+ 600;

为SQL = 更新member_login集lout_time =美元,美元lout_time UID = UID和session_id =session_idlsquo美元;;;

mysql_query($ SQL);

}

>

这种方法的优点是实现起来比较简单,可以应用于大多数网站。没有额外的服务器需求,它也可以准确地计算用户的在线时间。

缺点也很明显,它增加了数据库的更新操作,增加了系统的负载,但是对于中小型站点来说不应该是个问题。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部