访问PHP中的活动会话

访问PHP中的活动会话,php,session,Php,Session,如何获取服务器上所有活动PHP会话的列表,并从一个用户的实例中访问它们 激励案例是显示站点上所有当前活动用户的列表,其中用户名存储在每个用户的PHP会话中 注意:我知道我可以通过数据库(甚至是文件系统)创建自己的状态,但我正在寻找一种利用内置PHP会话机制的方法。会话作为文件存储在临时会话目录中。您应该能够在php.ini中找到它(或使用phpinfo())。这些都是课程。您应该能够检查文件时间,以查看它们是否在最后x分钟内处于活动状态。查看响应,尽管这是可能的,但并不意味着您应该这样做。会话的

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

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


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

会话作为文件存储在临时会话目录中。您应该能够在php.ini中找到它(或使用
phpinfo()
)。这些都是课程。您应该能够检查文件时间,以查看它们是否在最后x分钟内处于活动状态。

查看响应,尽管这是可能的,但并不意味着您应该这样做。会话的存储格式没有文档记录,并且可能随时发生更改(即使在次要版本之间)


正确的方法是实现您自己的。其实这并不难。

你不能使用会话来实现这一点,你必须将在线用户存储在数据库中,只需设置一个时间戳或类似的设置,在5分钟内显示所有活动用户,否则删除他们的记录

会话列表

<?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());
?>


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

可能是重复的,它是-我没有发现一个搜索,但请欣赏链接。可能是重复的