访问 PHP 中的活动会话

2022-08-30 23:33:27

如何获取服务器上所有活动 PHP 会话的列表,并从一个用户的实例中访问它们?

激励案例是显示网站上所有当前活动用户的列表,其中用户名存储在每个用户的PHP会话中。

注意:我知道我可以通过数据库(甚至是文件系统)创建自己的状态,但我正在寻找一种利用内置PHP会话机制的方法。


答案 1

看到回应,虽然这是可能的,但这并不意味着你应该这样做。存储会话的格式没有记录,并且可能随时更改(甚至在次要版本之间)。

执行此操作的正确方法是实现您自己的会话处理程序。这并不难,真的。


答案 2

会话列表

<?php
print_r(scandir(session_save_path()));
?>

检查特定会话

<?php
session_start();
echo (file_exists(session_save_path().'/sess_'.session_id()) ? 1 : 0);
?>

上次更改时间会话文件

<?php
session_start();
echo filectime(session_save_path().'/sess_'.session_id());
?>

正如已经做到的那样,以这种方式处理会话并不是最佳实践,但是如果需要,这些会话将无需检查/修改会话存储路径即可工作(如果您切换到具有不同配置的另一台服务器,则很有用)。


推荐