使用PHP 會話時,有時需要修改會話超時以延長用戶活動的持續時間在會話被視為過期之前。雖然可以更改 php.ini 文件,但在某些情況下可能無法存取該文件。
在這種情況下,仍然可以使用 PHP 程式碼延長會話逾時。然而,重要的是要明白,實現嚴格的會話逾時需要程式碼實作來確保嚴格執行。
如果您願意接受下限而不是嚴格的限制,您可以輕鬆設定此參數,無需自訂邏輯。對於使用cookie 實現的會話,您可以調整以下參數:
ini_set('session.gc_maxlifetime', 3600); // Server keeps session data for at least 1 hour session_set_cookie_params(3600); // Clients forget their session ID after 1 hour
透過設定伺服器將會話資料保留一小時並指示客戶端在同一時間範圍內忘記其會話ID,您可以有效地設定會話持續時間的上限。請注意,這兩個步驟對於實現此結果都是必不可少的。
對於關鍵環境,您可以透過實現自訂邏輯來確保完全控制會話不活動的上限,建立一個嚴格的時間限制。
session_start(); $now = time(); if (isset($_SESSION['discard_after']) && $now > $_SESSION['discard_after']) { session_unset(); session_destroy(); session_start(); } $_SESSION['discard_after'] = $now + 3600; // Sets the upper limit to 1 hour
透過追蹤會話資料中的會話過期時間,您可以對會話實施嚴格的時間範圍
使用會話ID 時,請請注意,必要時需要使用session_regenerate_id 重新產生它們,以確保它們不可預測。
以上是如何在不修改 php.ini 的情況下延長 PHP 會話逾時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!