2014-03-12 55 views
0

我有一个带有两个域的单个服务器。我使用相同的SESSION ID(假设您在两台服务器上手动更改“PHPSESSID”的cookie值,或在session_start之前使用session_id(...))。 这两个域使用的会话文件是相同的,我在磁盘上验证它。在同一台服务器上的域之间共享会话

会发生什么情况是当我更改域时会话被清除。我的意思是清除两个域名,而不写任何会话。

注意到,这个工作几个星期前在同一台服务器上,并没有发生任何改变(至少我们没有手动修改/升级的任何东西)

我使用调试脚本这些,相同

设置会话:

<? 
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
检查会话 - >再次清空
检查在A - > EMPTY !!!!!

如果换成A和B.

任何好的建议表示赞赏同样的行为。
我不想另有办法做到这一点,我需要了解发生了什么。

+1

就我所知,会话不能在不同的“域”之间共享。这是一个安全问题。 –

+0

你怎么知道它?有没有文件? 我让它工作了! –

+0

据我所知,会话存储在文件中,并且有一个巨大的唯一文件夹。数据是序列化的,但没有用每个网站的不同密钥加密。 –

回答

0

这可能是可能的,但是suhosin会阻止它在默认配置下使用文档根作为关键字来加密会话数据。 因此,不能以这种方式共享不同域的会话。

相关问题