php - 我可以计算 session 以确定在线人数吗?

标签 php mysql session

我对某事感到困惑。当我尝试搜索如何用 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/

相关文章:

mysql - VB NET - 查询 Mysql - 在哪里\

php - 用于测试目的的对本地主机的简单 session 固定攻击

php - Symfony 1.4 session 随机丢失

php - 如何在 Android 上使用 SSL 与多实体

php - 连接两列并使用单个 sql 查询从其外键获取字段值

javascript - 如果ajax回调中验证失败,如何停止提交表单

php - 使用非零的数据库编号时,Laravel 6 redis session 不存储到 redis

php - 如何使用户名显示在表格的行和列中

php - 计算mysql结果的平均值php

mysql - 我是否需要在我的 (grails) Web 应用程序中使用 C3P0 池库?