检查用户是在线还是离线的最佳方法是什么? 在PHP中,有两个函数:
time();
和
strtotime();
如何使用它们检查状态?
答案 0 :(得分:0)
简单来说,要检查用户状态,请执行以下操作:
1 - 在网站的每个文件中(如数据库文件或会话文件),使用time()
函数进行查询以更新用户的上一个活动。
if(isset($_SESSION['id'])){
$uid=$_SESSION['id'];
$now=time();
$update=$db->prepare("update users set last_act=$now where uid='$uid'");
$update->execute();
}
在个人资料页面或您要显示用户状态的任何页面中,获取用户的last_activity
记录,然后立即获取time()
,然后减去它们,如果差异更大超过300(这是秒的差异),因此用户离线,否则用户在线。
if (isset($_GET['pid'])) {
$now = time();
if (is_int($_GET['pid'])) {
$userid = $_GET['pid'];
}
$get_last_act = $db->prepare("select last_act from users where uid='$userid' ");
$get_last_act->execute();
$fetch = $get_last_act->fetch();
$last_act = $fetch['last_act'];
$difference = $now - $last_act;
if ($difference > 300) {
echo 'offline';
}
else {
echo 'online';
}
}