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的评论。



