我有一个PHP程序,它使用会话变量通过多个PHP脚本传递数据。当我在普通计算机上测试时,它会很好地流动,并且会话数据保持在预期的位置,在页面刷新时保持等等。
我遇到的一件奇怪的事情是,在辅助计算机上,会话非常不一致。我将到达一个页面,它就好像没有设置任何会话变量。更奇怪的是,如果我尝试重新加载页面,有时变量将实际加载(如果我再次刷新,它们会再次消失)。
据我所知,问题似乎不是特定于浏览器(我在两台计算机上都测试过Chrome,Firefox和IE),而是计算机专用,这对我来说似乎很奇怪。我让其他两个人尝试一下,发现完全相同的问题 - 对于一个人来说,程序运行得很好,但对于另一个人来说,会话变量加载不一致。
有什么想法?我没有对会话做任何想法,我只是在脚本的开头调用session_start(),通过表单发布数据,并通过$ _SESSION访问/存储。
编辑:一些额外的细节---在萤火虫中,在没有受到影响的计算机上我看到3个饼干,我想我应该期待(我当然不多在会话管理和cookie方面经验丰富。在受影响的计算机上,我在Firebug中根本没有看到任何cookie,即使页面随机正确加载也是如此。
另外为了澄清,我确实希望会议数据对于每台计算机都是不同的,我不期望来自一台计算机会话的数据在另一台计算机的会话中可用。
编辑2 :我再次检查了firebug中的cookie,看起来好像3个cookie出现在受影响的计算机上(可能今天早些时候没有正确加载)。我在没有正确显示数据的页面上完成了$ _SESSION变量的var_dump,并且确实存在所有信息。它只是由于某种原因它有时只在下面的HTML部分加载。我会继续挖掘。
答案 0 :(得分:1)
经过大量的挖掘和测试后,我终于弄明白了,答案出人意料地模糊不清,同时还在我的鼻子底下。我的公司使用VPN将远程桌面连接到我们的工作服务器。虽然我在工作服务器上设置的页面可以通过浏览器访问并正常工作(这让我失望),但是会话cookie没有正确传递到受影响的计算机,因为这些计算机没有网站的IP地址映射到其Windows主机文件中的工作域。一旦我将IP地址映射到站点域,一切都像我的主计算机一样完美。感谢所有提出这个问题的人!