[英]Keep $_SESSION alive with autorenewing counter
我想讓會話保持三天,每當他們訪問該頁面時,它會再次更新三天。 基本上如果他們三天不訪問該網站,他們的會話就會下降。
ini_set('session.cookie_lifetime',60*60*24*3); //saw on a similar SO question
session_start();
上面的代碼位於top.php的頂部,這是一個在每個頁面上include()
的文件。
$_SESSION["username"] = $username;
$_SESSION["password"] = $hashedpass;
$_SESSION["authtoken"] = $authkey; //authentication key
以上是在login.php上,它根據SQL中存在的驗證設置$_SESSION
數據。
也許這是WAMP的一個功能,但每當我關閉瀏覽器時,盡管php.ini參數被更改,會話終止。 我可能在top.php的第1行使用了錯誤的位嗎?
使用cookies ,我懷疑你可以控制你的會話生命周期。
您需要做的基本上是存儲cookie中所需的會話變量,並且在用戶進入站點時,如果未設置會話變量,請檢查是否存在包含這些變量的cookie,並將cookie中的數據加載到會話中。 或者您可以從cookie訪問它們
如果您有敏感數據,則不希望將其存儲在Cookie中。 您可以將此數據存儲在服務器上的某種形式的持久存儲中(數據庫或文件,數據庫更可取),並將此數據的ID存儲在用戶端的cookie中。 當用戶訪問您的站點時,從cookie中獲取ID並加載數據。
我剛剛發現:
ini_set('session.cookie_lifetime', 60*60*24*3);
ini_set('session.gc_maxlifetime', 60*60*24*3);
session_start();
...工作正常。 即使瀏覽器關閉,它也會使會話保持活躍狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.