簡體   English   中英

如果服務器閑置,php會話將在第一次嘗試時失敗

[英]php session fails on first attempt if server has been idle

由於某種原因,如果服務器閑置了一段時間(例如幾個小時),則首次登錄嘗試將失敗。

這是發生了什么:

  1. 用戶導航到登錄腳本
  2. 該腳本設置會話變量並重定向到主頁
  3. 主頁應該能夠讀取會話變量(但是在這種情況下會失敗)

PHP錯誤日志中沒有任何注釋,第二次嘗試可以正常進行。 只有在閑置時間之后,第一個訪問頁面的用戶才會發生這種情況。 例如,如果另一個用戶嘗試在5秒后登錄,則一切正常。

這是在使用FastCGI的IIS7和PHP 5.3上。

有什么想法在這里有什么問題,或者我可以找到解決方案嗎?

大致是通過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
}

刪除三行。

session_write_close();
session_unset();
sleep(200000); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM