【发布时间】:2025-12-02 04:35:01
【问题描述】:
我想到了一些帮助程序来管理我的开发本地主机上的会话变量。
我想从我机器上的所有虚拟主机中读取、更改和删除会话变量。
据我所知,在 PHP 中我只能访问当前主机会话变量,在调用 session_start 之后,这些变量将填充到 $_SESSION 变量中。这还不足以满足我的需求。
经过一些研究(例如Access active sessions in PHP)我找到了解决方案:
- 从 php session 目录加载所有文件
- 使用session_decode 将数据加载到$_SESSION 变量中
- 读取/更改/删除一些变量
- 使用session_encode 将我的会话编码回文件
有没有更好的方法来做到这一点? 也许已经有专门的工具来完成这项任务?
编辑: 我现在使用的另一个解决方案是在 IDE 中为所需项目启用调试器,并使用手表/堆栈窗口来编辑会话。
编辑2: 我不想要任何特定于项目的解决方案,例如将会话数据存储在数据库中。对于任何项目,这应该“开箱即用”。 为了更好地理解,使用示例: 在 magento 管理面板中,网格过滤器存储在会话变量中。 当您启用损坏的过滤器时,会出现一个错误页面,并且您无法在不删除会话 cookie 或为其设置调试器的情况下轻松禁用此过滤器。
【问题讨论】:
-
你可以use a database 然后查询它。只是一个想法
-
@HamZa 我已经编辑了我的问题。
-
没有适用于每个项目的解决方案,因为每个项目都可以指定自己的会话处理程序(例如,保存到数据库的处理程序)。您需要挂钩到每个项目的特定会话处理程序(标准 PHP 处理程序除外)。
-
@ComFreek AFAIK 大多数 php 应用程序/框架仍然使用 PHP 会话机制。否则他们将需要一些“默认数据库”来保存。现在,让我们假设我们讨论的是 PHP 会话机制。保存在数据库中的会话很容易使用任何数据库管理器进行管理(如果你知道格式)。