由于某种原因,如果服务器空闲了一段时间,例如几个小时,第一次登录尝试将失败。
这就是发生的事情:
- 用户导航到登录脚本
- 该脚本设置会话变量并重定向到主页
- 主页应该能够读取会话变量(但在这种情况下会失败)
PHP错误日志中没有备注,第二次尝试正常。它仅发生在第一个用户在空闲期后访问该页面。例如,如果另一个用户在 5 秒后尝试登录,则一切正常。
这是在使用 FastCGI 的带有 PHP 5.3 的 IIS7 上。
任何想法这里有什么问题或我可以做些什么来找到解决方案?
脚本大致是这样设置 login.php 的:
@session_start();
$_SESSION['userid'] = $userid;
session_write_close();
session_unset();
usleep(200000);
header('Location:index.php');
主脚本
session_start();
if (isset($_SESSION['userid'])) {
// Login successful
}