数码资讯
在PHP下计算用户在线时间的尝试
下面列举了几种常用的方法。 首先,我们介绍了涉及四个字段的数据表结构: 复制代码代码如下所示: UID:用户ID session_id:的session_id系统产生的用户登录后,和PHP使用session_id获得()函数 login_time:登录时间 logout_time:登机时间 1。客户
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
下面列举了几种常用的方法。
首先,我们介绍了涉及四个字段的数据表结构:
复制代码代码如下所示:
UID:用户ID
session_id:的session_id系统产生的用户登录后,和PHP使用session_id获得()函数
login_time:登录时间
logout_time:登机时间
1。客户端向服务器发送请求的时候。方法是在用户登录,用户名,session_id,login_time插入一条记录,然后设置一个定时器在JS的客户端,比如每10分钟向服务器发送请求,从而达到更新登出时间,目的当然,设置间隔时间短,数据可能会更准确。但相应的负载系统会更高,这可以根据实际情况设置合适的值。这种方法被广泛应用于网页游戏,因为几乎所有的请求都是Ajax请求的网页游戏,无需刷新页面。刷新页面后,计时器就失去了它的值,这就是这种方法的局限性。
2。服务器设置一个常规轮询脚本。这个方法是在服务器端编写一个定时执行脚本,比如在5分钟内执行。根据数据库中的记录,我们可以判断服务器上仍然存在的每一届session_id。如果有,我们更新logout_time不存在。这也可以准确地计算在线时间,但缺点是,它需要对服务器的控制。否则,它无法设置时间脚本。Linux系统可以实现通过crontab,和Windows系统可以通过计划任务完成。如果你只是买一个虚拟主机,这种方法也不适合你。
三.当用户处于活动状态时更新注销时间。这样,当用户处于非活动状态或退出时,数据库中自然存在的到达时间,这是本文的重点。
首先,成功的用户登录后,记录它的UID和session_id,呈现时间为登陆时间。现在时间+ 600s作为登出时间插入数据库。
复制代码代码如下所示:
UID = { 'uid _session美元美元美元的} = { 'id' }信息;
session_id美元美元'session_id _session { } == session_id();
login_time美元=时间();
logout_time美元=时间()+ 600;
为SQL =插入member_login(UID,session_id,login_time,logout_time)值($ UID,session_id美元,login_time美元,);
mysql_query($ SQL);
然后,当用户处于活动状态时,即单击页面时,如果会话存在或处于登录状态,则它将更新用户的登机时间。
复制代码代码如下所示:
如果($ _session { 'uid ' }){
美元美元'uid_session UID = { };
session_id美元美元'session_id_session { } =;
logout_time美元= + 600()时间;
为SQL = 更新member_login集logout_time =美元,美元logout_time UID = UID和session_id =session_id美元;
mysql_query($ SQL);
}
这种方法的优点是实现起来比较简单,可以应用于大多数网站。没有额外的服务器需求,它也可以准确地计算用户的在线时间。
缺点也很明显,它增加了数据库的更新操作,增加了系统的负载,但是对于中小型站点来说不应该是个问题。
首先,我们介绍了涉及四个字段的数据表结构:
复制代码代码如下所示:
UID:用户ID
session_id:的session_id系统产生的用户登录后,和PHP使用session_id获得()函数
login_time:登录时间
logout_time:登机时间
1。客户端向服务器发送请求的时候。方法是在用户登录,用户名,session_id,login_time插入一条记录,然后设置一个定时器在JS的客户端,比如每10分钟向服务器发送请求,从而达到更新登出时间,目的当然,设置间隔时间短,数据可能会更准确。但相应的负载系统会更高,这可以根据实际情况设置合适的值。这种方法被广泛应用于网页游戏,因为几乎所有的请求都是Ajax请求的网页游戏,无需刷新页面。刷新页面后,计时器就失去了它的值,这就是这种方法的局限性。
2。服务器设置一个常规轮询脚本。这个方法是在服务器端编写一个定时执行脚本,比如在5分钟内执行。根据数据库中的记录,我们可以判断服务器上仍然存在的每一届session_id。如果有,我们更新logout_time不存在。这也可以准确地计算在线时间,但缺点是,它需要对服务器的控制。否则,它无法设置时间脚本。Linux系统可以实现通过crontab,和Windows系统可以通过计划任务完成。如果你只是买一个虚拟主机,这种方法也不适合你。
三.当用户处于活动状态时更新注销时间。这样,当用户处于非活动状态或退出时,数据库中自然存在的到达时间,这是本文的重点。
首先,成功的用户登录后,记录它的UID和session_id,呈现时间为登陆时间。现在时间+ 600s作为登出时间插入数据库。
复制代码代码如下所示:
UID = { 'uid _session美元美元美元的} = { 'id' }信息;
session_id美元美元'session_id _session { } == session_id();
login_time美元=时间();
logout_time美元=时间()+ 600;
为SQL =插入member_login(UID,session_id,login_time,logout_time)值($ UID,session_id美元,login_time美元,);
mysql_query($ SQL);
然后,当用户处于活动状态时,即单击页面时,如果会话存在或处于登录状态,则它将更新用户的登机时间。
复制代码代码如下所示:
如果($ _session { 'uid ' }){
美元美元'uid_session UID = { };
session_id美元美元'session_id_session { } =;
logout_time美元= + 600()时间;
为SQL = 更新member_login集logout_time =美元,美元logout_time UID = UID和session_id =session_id美元;
mysql_query($ SQL);
}
这种方法的优点是实现起来比较简单,可以应用于大多数网站。没有额外的服务器需求,它也可以准确地计算用户的在线时间。
缺点也很明显,它增加了数据库的更新操作,增加了系统的负载,但是对于中小型站点来说不应该是个问题。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。