PHP会话ID是相同的,但会话变量消失了

时间:2013-04-12 03:27:10

标签: php session session-variables

我遇到了最奇怪的会话变量问题。

首先,Firefox是我看到问题的唯一浏览器。 IE9Chrome工作正常。

现在上下文:加载后,我的页面每分钟开始在我的服务器上执行Javascript XHR以刷新状态。现在,经过一段时间(我已经看到1030分钟之间的任何时间),请求进入我的php文件,会话开始(具有相同的会话ID)作为前一个请求(当然是同一个客户端)),但会话变量都未设置!!

会话超时处于默认的24分钟,但每个请求都会更新$_SESSION['time']变量以使会话保持活动状态。

简而言之,会话不应该过期,并且正确的会话ID正在传播,但是在一段(相当随机的)时间段之后,会话变量就会消失。

有什么可能导致这种情况的想法吗?

1 个答案:

答案 0 :(得分:0)

确定。所以我终于喜欢这个神秘问题的原因了。一切都很清楚了。

我的网络托管服务让我在我的域名上安装了一个bugbase。

bugbase安装在自己的目录中,并在http://mydomain.com/bugbase

上访问

问题在于bugbase是基于PHP的,我的实际网站也是如此。

因为它们都在同一个域(mydomain.com),如果我从同一个浏览器访问它们,它们都将共享相同的PHP会话。因此从一个注销,也会杀死另一个的会话。

瞧!! ​​

一旦我找到了,我就可以确认在我打开我的网站和bugbase的任何浏览器中都可以看到问题。

我还没有尝试过,但问题的解决方案可能是在子域上安装bugbase。