>我正在开发一个论坛,我需要计算在线人数。
根据与之相关的老问题,他们说应该使用count()
函数。
但count()
函数仅计算特定用户的会话变量。我的意思是在编码点火器中,count($_SESSION['user'])
给出了数字2
,这个数字指向$_SESSION['user']['name']
和$_SESSION['user']['group']
.
因此,每个用户都会在屏幕上看到数字2
作为在线人员编号。但是我需要服务器中分配$_SESSION['user']
变量的数量,而不是特定会话变量的子变量的数量。解决方案是什么?如何检测在线人数?
在这种情况下,您希望拥有一个数据库,最好是MySQL
并在用户重新加载页面或在网站上执行任何操作时CURRENT_TIMESTAMP()
更新users
表。
之后,如果您想在线获取当前用户,您可以做
SELECT COUNT(*) FROM users WHERE last_activity > NOW() - INTERVAL 5 MINUTE;