PHP计入登录用户

4 php user-accounts

我无法弄清楚如何计算应用程序中登录用户的数量.

我拥有:当用户登录时,他们获得一个会话(在用户想要访问受保护页面时使用),并且users表中用户的IsLoggedIn列设置为1以指示用户已登录当用户注销时,该值将重新设置为0.计算users表中的1的数量可以轻松返回登录的用户数.但...

问题:如果用户在没有注销的情况下关闭浏览器,则数据库中的值保持为1,表示即使用户在关闭浏览器时会话已结束,用户仍然已登录.

问题:有人可以提出正确的方法吗?

mel*_*oon 13

您应该添加LastTimeSeen列,而不是IsLoggedIn列.任何人访问页面时都会更新列:

UPDATE members SET LastTimeSeen = NOW() WHERE id = $the_user_id
Run Code Online (Sandbox Code Playgroud)

然后,在任何给定时刻获取网站上有多少人使用查询:

SELECT COUNT(*) FROM members WHERE LastTimeSeen > DATE_SUB(NOW(), INTERVAL 5 MINUTE)
Run Code Online (Sandbox Code Playgroud)

这表明在过去的5分钟内有多少人查看了一个页面,这是没有更复杂的解决方案的最佳选择.