mysql 用户在线判断_php中如何判断用户是否在线

展开全部

代码很简单,但实现逻辑自己要想明白32313133353236313431303231363533e58685e5aeb931333365663464,

网站头公共文件加下边代码,意思即每个页面都有包含下面这个php代码,总之你懂,

这样,只要有用户登陆,或者打开别的页面,就会往 all_user 表里 的action_time字段添

加操作时间, 当你检测用户是否在线,就把用户操作时间action_time转化为 几分钟前,小时前,

,知道每个用户是 几分几小时前操作,就可以把几分钟前的显示在线,而几小时前的,显示离线或几小时前,

例如用户15:30分登陆,打开几个页面,然后就关电脑或出门, 这时all_user 表已经记录了操作时间

网站可以用 wordTime($time)显示他的操作时间离现在为2分钟前,或20分钟前,将直接显示在线。

至于多少分钟不操作算离线,自己调分钟数

strtotime("now"); //取服务器当前时间戳,得到值如1533213376

$sql="UPDATE all_user SET action_time=$action_time WHERE userid=$cook_userid";

//往用户表里更新 操作时间,具体要填自己的表名和用户名的 字段名

?>

//======================下边功能代码可copy 直接用

function wordTime($time) {

$time = (int) substr($time, 0, 10);

$int = time() - $time;

$str = '';

if ($int <= 2){

$str = sprintf('在线', $int);

}elseif ($int 

$str = sprintf('在线', $int);        //60秒内

}elseif ($int 

$str = sprintf('在线5', $int);        //5分钟内

}elseif ($int 

$str = sprintf('在线+', floor($int / 60));       //30分钟内

}elseif ($int 

$str = sprintf('%d分钟前', floor($int / 60));        //30-60分钟内

}elseif ($int 

$str = sprintf('%d小时前', floor($int / 3600));

}elseif ($int 

$str = sprintf('%d天前', floor($int / 86400));

}elseif ($int 

$str = sprintf('%d月前', floor($int / 2592000));

}else{

$str = "";//date('Y-m-d', $time);

}

//调用方法,把值给到变量time 如: $time="1533213376";  echo wordTime($time);  结果将输出 20分钟前

?>

不存在频繁操作数据库问题,因为打开网页都要查询mysql 用户名等这些,也不差这条更新命令,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值