我们有一个PHP会话问题。
有时我们的应用程序会丢失会话。无法确定架构。大多数情况下(99,9%)没有错误发生。
这是一个非常大的应用程序(超过7,000个PHP页面)。问题出现后,源代码未被更改。PHP可在IIS 7.5和Windows Server 2008上运行。
会话ID已从cookie正确传输。受影响的会话文件不再可用,或者为空或缺少数据。看起来数据被删除了,因为文件结构看起来是正确的。
会话锁定起作用。
会话存储在SAN上。我们已经在内部硬盘驱动器上临时保存了会话。同样的结果。
有没有人有办法解决这个问题?
亲切的问候
保罗
PS。对不起,我的英语不好!
发布于 2014-08-14 08:09:51
如果您有会话,请尝试会话处理程序。您可能不想对所有这些页面进行硬编码,但肯定会有一个或多个页面丢失。此外,这也归因于浏览器的限制。如果我在IE上启动一个会话,然后在Chrome中进行管理员登录,将会固有地杀死第一个会话,因为当恢复SAN时,其他会话将不再被识别。顺便说一句,你的会话超时时间没有被提及,而是你在谈论(超过7,000个PHP页面)。我建议您创建一个会话变量并传递它,而不是依赖cookie,除非您的页面编排、发布或更新很多,因此您为什么要使用cookie。不过,您必须首先确保所有变量集都是唯一的。
发布于 2014-12-01 23:22:19
您应该检查您的每个页面是否设置了特定的会话。这是一种很好的编程技术。你在php代码中用过它吗?您可以搜索数据丢失的页面,然后在该页面中应用php代码。
if(isset($_POST['your_session'])){
//body;
}
else{
echo '<script type="text/javascript">'.
'alert("Session not set !");'.
'</script>';
}通过此代码,您将获得代表您的会话的错误。
https://stackoverflow.com/questions/25245279
复制相似问题