我遇到了最奇怪的会话变量问题。
首先,Firefox
是我看到问题的唯一浏览器。 IE9
和Chrome
工作正常。
现在上下文:加载后,我的页面每分钟开始在我的服务器上执行Javascript XHR
以刷新状态。现在,经过一段时间(我已经看到10
到30
分钟之间的任何时间),请求进入我的php
文件,会话开始(具有相同的会话ID)作为前一个请求(当然是同一个客户端)),但会话变量都未设置!!
会话超时处于默认的24
分钟,但每个请求都会更新$_SESSION['time']
变量以使会话保持活动状态。
简而言之,会话不应该过期,并且正确的会话ID正在传播,但是在一段(相当随机的)时间段之后,会话变量就会消失。
有什么可能导致这种情况的想法吗?
答案 0 :(得分:0)
确定。所以我终于喜欢这个神秘问题的原因了。一切都很清楚了。
我的网络托管服务让我在我的域名上安装了一个bugbase。
bugbase安装在自己的目录中,并在http://mydomain.com/bugbase
上访问问题在于bugbase是基于PHP的,我的实际网站也是如此。
因为它们都在同一个域(mydomain.com),如果我从同一个浏览器访问它们,它们都将共享相同的PHP会话。因此从一个注销,也会杀死另一个的会话。
瞧!!
一旦我找到了,我就可以确认在我打开我的网站和bugbase的任何浏览器中都可以看到问题。
我还没有尝试过,但问题的解决方案可能是在子域上安装bugbase。