判断会员在线方法探讨

在我们好多网站运营中,特别是一些web2.0的用户之间交互的网站,通常需要实时获得用户是否在线.通常我们用的方法经常是30分钟无动作即作离线处理,因为前面项目的关系,我用了这种方法.

   1,在数据库中建立如下的user表

CREATE TABLE user (

id int(11) autoincreatment,

name varchar(11),

password varchar(64),

isonline enum(0,1),

onlinetime int(11),

offlinetime int(11)

)primary key id;

   2,在global.php中引入文件isOnline.php.即用户一有动作,就触发该文件:

 

    

<?php

session_start();

if(!is_login())

{

   exit('未登录');

}

/**

在此更新在线时间

*/

$updateOnLineTimeSql = "update user set ōnlinetime=time() where id = $_SESSION['id']";

mysql_query($updateOnlineTimeSql);

     3.设置linux的cron,并将其指向clearOnlineUser.php,设置为5分钟执行一次,该php文件内容如下:

   

<?php

  session_start();

if(!is_login())

{

   exit('未登录');

}

/**

用当前时间戳与表中onlinetime字段做差,如果大于30分钟,即已离线,否则为在线.

*/

$getOnLineTimeStampSql = "select onlinttime from user where id=$_SESSION['id']";

$getOnLineTimeStampQuery = mysql_query($getOnLineTimeStampSql);

$getOnLineTimeStampRes = mysql_fetch_array($getOnLineTimeStampQuery);

$onLineTimeStamp = $getOnLineTimeStampRes['onlinetime'];

if(time()-$onLineTimeStamp>30*60)

{

 //已退出,将数据库中的isonline置为0

}

else

{

//他还是在线的.

}

4,这样就可以根据数据库中的isonline字段较为准确地判断用户是否在线了.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值