当前位置: 首页 > 面试题库 >

用PHP遍历服务器的所有会话

牟嘉
2023-03-14
问题内容

PHP中有没有一种方法可以获取服务器上所有会话的列表(以及每个会话中的变量)?

基本上,我们具有维护功能,该功能需要知道当前哪些用户登录到该站点。我们已经在会话变量中存储了每个用户的数据,但是我希望可以遍历每个会话并提取所需的数据。

我的PHP非常有限(我通常是.NET开发人员),但是如果有人知道这样做是否可行(以及如何做到),我将不胜感激。我用谷歌搜索,发现的结果倾向于表明这是不可能的,但是我发现这很难接受。

不过,如果不能,但是我认为我在StackOverflow上的伙伴可以给我一个明确的答案!


问题答案:

PHP将每个用户的会话数据存储在服务器上的临时文件夹中。该文件夹在php.ini配置文件中的session.save_path变量下定义。从您的php.ini文件中找到此值,或者使用以下方法创建一个php文件:

<?php echo "Session Save Path: " . ini_get( 'session.save_path');?>

内容,然后在浏览器中打开文件。

找到会话数据的保存路径后,打开该文件夹,您会注意到一个相当简单的结构。所有会话均以以下格式存储:sess_ $ SESSIONID。

会话数据在存储到磁盘之前先进行序列化。这样,存储在会话文件中的对象在使用之前必须进行反序列化。但是,如果您使用的是按原样存储的纯文本来存储会话数据(例如$_SESSION['userid'] = 1234)以存储有关用户的信息,那么应该足够容易地从内部解析出您要查找的数据文件。

还有一件事……我还没有研究它,但是看起来好像文件名中出现的会话ID直接对应于例如存储在用户计算机上的PHPSESSID
cookie的名称。因此,考虑到这一点,可能可以遍历临时会话目录中的文件,获取所有$
SESSIONID值,使用设置当前会话ID,使用session_id($SESSIONID)开始会话session_start()并通过PHP访问所需的数据,而无需来解析内容文件本身。谁能确认这是否可能?

编辑: 调整后的帖子以匹配Itay的评论。



 类似资料:
  • 问题内容: 如何遍历对象的所有属性?现在,我必须编写新的代码行以打印对象的每个属性 我可以使用foreach循环或任何循环遍历对象的所有属性吗? 像这样 问题答案: 如果这仅用于调试输出,则可以使用以下内容查看所有类型和值。 如果要对输出进行更多控制,可以使用以下命令:

  • 问题内容: 我正在运行以下代码,从具有特定列的所有表中提取所有相关的行。外层应该检查该迭代表中是否存在该列。如果没有,它应该完成该迭代并移至下一张表。如果表中有该列,则应检查该表是否将返回任何记录。如果没有要返回的记录,则应结束该迭代并移至下一个表。如果有记录,则应在SSMS中显示它们。 这似乎可行,因为SSMS仅返回带有有效条目的网格。我不明白的是:为什么我仍然会收到这些错误? 编辑 使用建议后

  • 问题内容: 这是我的代码: 这是我此页面的XML: 问题是我只能在LogCat控制台上得到它: 为什么我没有得到对TextViews的引用? 问题答案: 您需要递归遍历视图树。当前,您仅列出根视图的子级。 换句话说,您需要这样的东西:

  • 问题内容: 有没有一种方法可以获取Go语言映射中所有键的列表?元素的数量由给出,但是如果我有类似的地图: 如何遍历所有键? 问题答案: https://play.golang.org/p/JGZ7mN0-U- 要么 语句的Go语言规范指定第一个值是键,第二个变量是值,但不必存在。

  • 问题内容: 我有一个带有多个子SKSpriteNode的SKNode。一个简化的例子: 我想对所有这些孩子采取行动。当我在上执行操作时,没有任何效果。 我不能在父项上使用,因为它的许多子项已经具有我正在使用的名称。 有没有一种方法可以遍历的所有子项,以便对所有子项执行单个操作? 问题答案: 您可以简单地列举: 如有必要,请检查每个孩子是否确实是: 从 Swift 2(Xcode 7)开始, 可以将

  • 本文向大家介绍PHP遍历XML文档所有节点的方法,包括了PHP遍历XML文档所有节点的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP遍历XML文档所有节点的方法。分享给大家供大家参考。具体实现方法如下: 1. contact.xml代码: 2. php代码: 希望本文所述对大家的php程序设计有所帮助。