一尘不染

查找打开的会话数

php

我正在寻找一种简单的方法(无数据库)来列出网站上活跃用户的数量。我想出的最简单的方法是计算打开的会话数。

此代码 应工作:

$number_of_users = count(scandir(ini_get("session.save_path")));

当然,这不会因为该目录的安全性限制而存在(应该有!!)。有谁知道在不更改目录权限的情况下访问此号码的另一种方法。

注意: 我正在寻找一个 不涉及数据库 或降低PHP会话安全性的选项。

结束语: 对于任何遇到此问题的人,我最终都从根目录开始使用了cronjob(每分钟运行一次),其操作类似于:

ls /var/lib/php5/ | wc -l > /var/www/sessioncount

确保/var/www/sessioncountapache用户可以读取该文件。然后,您可以只读取PHP中的文件:

$number_of_users = file_get_contents("/var/www/sessioncount");

阅读 257

收藏
2020-05-29

共1个答案

一尘不染

轻松并不意味着在这种情况下没有数据库。同样依靠会话来查看有多少用户处于活动状态也不可靠。

如果您想走这条路,可以执行每隔几分钟由安全进程运行的cronjob,并将该计数保存到PHP读取的文件或db中。

但我建议您走数据库路线。

2020-05-29