在线或离线功能PHP

sko*_*ind 3 php mysql

我正在研究一个"社区".当然,我希望能够判断用户是在线还是离线.

我已经创建了这样,当你在我的表中登录UPDATE的行为1(默认为0)然后它们在线.当他们退出时他们处于离线状态.但如果他们没有按下退出按钮,他们将在线,直到他们按下该按钮.

所以我想创建的是:

  • 在不活动5分钟后,我的数据库中的行应该更新为0.

我正在寻找的是如何以最简单的方式做到这一点.每次加载页面时,我应该创建一个mysql_query,其中UPDATE的行为1.或者还有另一种方法吗?

And*_*ewR 7

不使用布尔"在线"字段,而是使用DateTime.当用户向页面发出请求时,将DateTime更新为NOW().当您在线收集当前用户列表时,您的WHERE子句就是这样的WHERE lastSeen > DATE_SUB(NOW(), INTERVAL 5 Minutes)

更新:检索个人在线状态.

select if(lastSeen > date_sub(now(), interval 15 minutes), 1, 0) as status from table where userid=$userid

  • 如果用户去喝咖啡并在20分钟后返回怎么办?他会断开连接? (2认同)