PHP将每个用户的会话数据存储在服务器上的临时文件夹中。此文件夹在php.ini配置文件中的变量session.save_path下定义。从您的php.ini文件中找到此值,或者创建一个php文件:
作为其内容,并在浏览器中打开该文件。
一旦找到会话数据的保存路径,打开该文件夹,您会注意到一个相当简单的结构。所有会话都以以下格式存储:sess_ $ SESSIONID。
会话数据在存储在磁盘上之前序列化。因此,存储在会话文件中的对象必须在可用之前被反序列化。但是,如果您使用纯文本(存储为原样)存储会话数据(例如$ _SESSION [‘userid’] = 1234)以存储有关用户的信息,则应该很容易解析出来您在文件中查找的数据。
还有一件事…我没有查看它,但它似乎似乎出现在文件名中的会话ID直接对应,例如,存储在用户的计算机上的PHPSESSID cookie的名称。因此,考虑到这一点,可以循环遍历临时会话目录中的文件,获取所有$ SESSIONID值,使用session_id($ SESSIONID)设置当前会话ID,使用session_start()和访问启动会话您需要的数据通过PHP,而不必解析内容文件本身。任何人都可以确认这是否可能?
编辑:调整后的帖子以匹配Itay的评论。