与(Empty $_SESSION superglobal on AJAX request, but session ID is preserved)相似但略有不同。
我正在尝试跨两个子域访问会话。直到最近,这个工作完美无瑕。跨越两个域.example.com和admin.example.com
session_set_cookie_params(0, '/', '.example.com');
session_start();
admin.example.com帐户位于其自己的虚拟服务器上,因此与example.com不同,我们称之为“User1”和“Adminuser”。 Adminuser可以访问User1的文件,因为它是User1组的一部分。
cookie在域之间完美传递,因此session_id在admin.example.com上也是正确的。我甚至可以读取会话的文件内容,数据全部存在且正确。
但是,$ _SESSION超级全局在admin.example.com上是空的
有趣的是,如果我将会话文件所有权更改为Adminuser,则会发生相反的情况。 Adminuser可以访问会话,但User1不能访问。让我相信这是我服务器设置的安全问题。
如上所述,这几个月完美无瑕。当我安装apache模块fastcgi并进行重建时,问题就开始了。我已经卸载了模块并回到suphp以查看问题是否会恢复,但唉它一直存在。
我没有安装suhosin,通过阅读我可以看到的类似帖子有时会导致问题。
任何人都知道可能导致此问题的设置?
[修改1 ]
另请参阅此主题:PHP Sessions across sub domains 2
@ ajmicek接受的答案中讨论的问题与我服务器上发生的问题相同,只有我知道Adminuser已经是User1组的一部分。