我有一个包含两个域的服务器。我使用相同的SESSION ID(让我们假设您在两台服务器上手动更改“PHPSESSID”的cookie值,或者在session_start之前使用session_id(...))。 这两个域使用的会话文件是相同的,我在磁盘上验证了它。
当我更改域时,会话被清除。我的意思是清除BOTH域并且不向会话写任何内容。
请注意,这在几周前在同一台服务器上运行,没有任何改变(至少我们没有手动更改/升级任何东西)
我用来调试的脚本是这些,在每台服务器上都是相同的:
SET会话:
<?
session_id(PUT_HERE_THE_SAME_SESSION_ID);
session_start();
$_SESSION['KEY'] = 'VALUE';
?>
检查会话:
<?
session_start();
echo "SESSION ID: ".session_id()."<br>\n";
print_r($_SESSION);
?>
魔法行为:
在A上设置会话
检查A上的会话,一切正常
刷新,等待或A上还有什么,然后检查,确定
检查B上的会话 - &gt; EMPTY
再次检查A - &gt; EMPTY !!!!!
交换A和B时的行为相同。
赞赏任何好的建议 我不想用另一种方法来做这件事,我需要了解发生了什么。
答案 0 :(得分:0)
这是可能的,但是在默认配置中,suhosin会使用文档根作为密钥加密会话数据。 因此,不能以这种方式共享不同域的会话。