0

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

首先,Firefox是我看到问题的唯一浏览器。IE9并且Chrome工作得很好。

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

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

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

关于可能导致这种情况的任何想法?

4

1 回答 1

0

好的。所以我终于喜欢上了那个神秘问题的原因。现在一切都清楚了。

我的网络托管服务让我在我的域上安装一个错误库,我这样做了。

bugbase 安装在其自己的目录中,可在http://mydomain.com/bugbase上访问

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

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

瞧!

一旦我发现这个问题,我可以确认在我打开我的网站和错误库的任何浏览器中都可以看到问题。

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

于 2013-04-17T02:07:48.370 回答