2017-06-15 149 views
0

关于会话丢失的几个主题,包括Github上的一个主题,但似乎没有涉及为什么它们可能在一台计算机上工作,而没有在另一台计算机上工作。会话在一台计算机上工作,但没有在另一台计算机上工作

我有一个小型管理系统上的200多个用户。登录由通常的用户名和密码控制,并且在验证时,用户可以看到一个欢迎页面,会话由通常的php session_start()启动。这一直在边缘,IE浏览器,Chrome浏览器和Firefox的工作,据我了解Safari,因为一些用户在苹果,但我没有访问苹果设备。我最近更换了主机,新主机使用LiteSpeed。

我有两个用户可以在IE中登录并获得欢迎页面(会话开始时),但是当他们请求下一页时,会要求他们再次登录,这意味着会话已经丢失。已经解决了cookies /会话关闭的明显原因。

我可以使用他们的凭据和登录,并在我的计算机上使用IE,Edge,Firefox和Chrome工作。如果使用不同的浏览器,则一个用户可以登录并工作。我在等待听到第二个用户是否可以使用其他浏览器。我知道还有其他用户在使用IE时没有任何问题。

我不确定问题是否在我切换主机并开始使用LiteSpeed之前就存在了,这可能只是一个巧合,但问题似乎妨碍了当时的形成,但我仍然困惑于为什么会话保持在运行IE的某些计算机上,但不在其他计算机上。想法赞赏。

+0

你能告诉你在你的php.ini提出任何具体的定制? – Martin

+0

由于移动主机和旧DNS缓存的数据,人们可能会遇到问题,让每个人都清除他们的网站浏览器历史记录,看看是否会导致问题消失? – Martin

+0

谢谢,我会试试看。 – user3726207

回答

0

这可能看起来像一个愚蠢的问题,但只是为了理智检查...你确实在所有页面上分享session_start();正确吗?每个页面都需要这个来读取与会话相关的存储变量,例如登录认证或不是。

尝试加入这个它来源于一个PHP论坛上面的session_start:

if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) { 
    session_cache_limiter("public"); 
} 
+0

是的,session_start()肯定是在所有页面上。只是奇怪的是,它在一些计算机上运行良好,而不是在其他计算机上运行,​​据我所知,它似乎只是IE,导致了一个问题。 – user3726207

+0

修改答案以包含MSIE的脚本 – Adrianopolis

+0

谢谢,我会试试。我收集它需要在每个session_start()之前去,这样就需要一些组织。 – user3726207

相关问题