PhpMyAdmin 将 cookie 路径设置为安装 PMA 的路径。
- 因此,如果它安装在/pma/中,它会将 cookie 路径设置为/pma/。
但是,我有注销代码,需要访问会话才能将用户与其他系统会话一起从 PMA 中注销,但它位于/中。
这当然不起作用,因为浏览器不允许在 cookie 路径之外访问 cookie。
在 php.ini 中设置默认 cookie 路径不起作用,因为 PMA 在设置将覆盖 php.ini 设置的 cookie 时指定了自己的路径。
有没有办法通过设置配置选项或可能扩展 PMA 类将 PMA 设置的默认 cookie 路径更改为/ ?我还读过一个叫做猴子补丁的东西runkit,它可以做到吗?如果有怎么办?
编辑 PMA 核心文件不是一种选择,因为我希望在升级之间进行更改。如果可以将其编码到 config.inc.php 中,它将在升级之间保持不变。
我通过 config.inc.php 尝试过的一些事情:
- 使用相同的名称和 sessionid 设置我自己的 cookie 不起作用,因为 cookie 被 PHP 处理中进一步设置的一个 PMA 覆盖。
- 更改 $_SERVER['PHP_SELF'] 的值,这是用于确定路径的值之一,不起作用,不知道为什么。
- 我试图扩展 PMA_Config 类,特别是 getCookiePath() 方法,但没有工作,因为我不知道如何实例化它,所以它覆盖了 PMA_Config 的方法。