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