我对某事感到困惑。当我尝试搜索如何用 PHP 计算在线用户数时,所有答案都与 MySQL 和许多不同的方法有关。
在我的脚本中,任何提交登录表单的用户都会创建一个 $_SESSION['$nickname']
所以我想,我可以用 count($_SESSION['$nickname']); 来计算登录 session 吗?并显示在我的页面上?
或者这完全是一个错误的逻辑?
最佳答案
完全错误的逻辑。 $_SESSION 是针对每个用户的。一个用户的 session 不会与任何其他用户的 session 共享。想一想 - 一个用 PHP 编写的在线银行,所有共享一个 $_SESSION - 每个人都会看到每个人的帐户详细信息。
假设您在标准的基于 PHP 文件的 session 中,您可以计算 session 文件在它们存储的任何目录中,例如
$users = count(glob(session_save_path() . '/*'));
请注意,这只计算 session 文件 - 它无疑将包含尚未被垃圾收集的陈旧/死 session 。如果您想要真正的“现在真的在线”,您必须解析每个 session 文件并检查其内容。
关于php - 我可以计算 session 以确定在线人数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11951476/