0

由于某种原因,如果服务器空闲了一段时间,例如几个小时,第一次登录尝试将失败。

这就是发生的事情:

  1. 用户导航到登录脚本
  2. 该脚本设置会话变量并重定向到主页
  3. 主页应该能够读取会话变量(但在这种情况下会失败)

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
}
4

1 回答 1

1

删除三行。

session_write_close();
session_unset();
sleep(200000); 
于 2012-11-02T13:45:45.680 回答