【发布时间】:2013-12-26 14:13:54
【问题描述】:
我想检查一个用户是否在线。我的成员表中有一个状态列。该列记录用户活动的最后一个时间戳。如果用户在 5 分钟内没有做任何事情(意味着他没有活动),用户应该从 users_online 页面上消失。
这是我存储用户最后一个活动的方式:
$setStatus = mysqli_query($mysqli,"UPDATE members SET status = '".time()."' WHERE id = '".$_SESSION['user_id']."'");
现在在 users_online 页面上,我选择状态(最新时间戳)为当前时间的用户名,间隔为 5 分钟。意思是,如果用户最新的时间戳在 5 分钟的间隔内,它应该显示用户 USERNAME。如果超过 5 分钟,他将被标记为离线。
这就是我所拥有的:
$getUsers = mysqli_query($mysqli,"SELECT username FROM members WHERE status = (NOW() - INTERVAL 5 MINUTE)");
if ( mysqli_num_rows($getUsers) > 0 ) {
$row = mysqli_fetch_array($getUsers);
echo $row['username'];
} else {
echo "Nobody online";
}
现在的问题是;它一直说没有人在线,即使我一直在使用我的帐户。
我错过了还是做错了什么?任何帮助将不胜感激。
【问题讨论】: