0

何らかの理由で、サーバーが一定時間 (たとえば数時間) アイドル状態の場合、最初のログイン試行は失敗します。

これが起こることです:

  1. ユーザーがログイン スクリプトに移動する
  2. スクリプトはセッション変数を設定し、メイン ページにリダイレクトします
  3. メイン ページはセッション変数を読み取ることができるはずです (ただし、この場合は失敗します)。

PHP エラー ログにコメントはなく、2 回目の試行は正常に機能します。これは、アイドル期間の後にページにアクセスする最初のユーザーに対してのみ発生します。たとえば、別のユーザーが 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

3 行を削除します。

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