我已经开发了这个 PHP Web 应用程序,它现在已经运行了几个月。突然,其中一位用户抱怨他可以登录,但只要他点击任何按钮,会话就会终止!同样的问题发生在不同的浏览器上。
经过一些测试,我意识到每次用户单击任何按钮时都会创建一个全新的会话 ID,可能是因为原始会话已过期。
不管出于什么原因,我看了一眼用户的计算机时钟,然后……惊喜!他的时钟是未来三个月!我不知道这样的事情是否与失败有任何关系,但我确实修好了时钟。仍然没有用。我删除了所有的cookies。依然没有。所以我重新启动了浏览器——然后它又开始工作了!
我得到的关于这个问题的最接近的信息是 Shimon Amit 对这个问题的回答。很好,现在我知道时钟“配置错误”是原因。问题是……我无法控制每个客户的计算机时钟。他们中的一些人将来可能会设置计算机时钟。
我的问题:有什么解决方案吗?有什么诀窍吗?我不希望客户面对这样的错误,因为他们可能会觉得它“蹩脚”并破坏他们对应用程序的信任,即使这并不是我的错(在某种意义上)。