访问PHP中的活动会话
如何获取服务器上所有活动PHP会话的列表,并从一个用户的实例中访问它们 激励案例是显示站点上所有当前活动用户的列表,其中用户名存储在每个用户的PHP会话中访问PHP中的活动会话,php,session,Php,Session,如何获取服务器上所有活动PHP会话的列表,并从一个用户的实例中访问它们 激励案例是显示站点上所有当前活动用户的列表,其中用户名存储在每个用户的PHP会话中 注意:我知道我可以通过数据库(甚至是文件系统)创建自己的状态,但我正在寻找一种利用内置PHP会话机制的方法。会话作为文件存储在临时会话目录中。您应该能够在php.ini中找到它(或使用phpinfo())。这些都是课程。您应该能够检查文件时间,以查看它们是否在最后x分钟内处于活动状态。查看响应,尽管这是可能的,但并不意味着您应该这样做。会话的
注意:我知道我可以通过数据库(甚至是文件系统)创建自己的状态,但我正在寻找一种利用内置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());
?>
正如之前所做的那样,以这种方式处理会话并不是最佳做法,但如果需要,这些方法将不需要检查/修改会话存储路径(如果切换到另一台具有不同配置的服务器,则会很有用)。可能是重复的,它是-我没有发现一个搜索,但请欣赏链接。可能是重复的