簡體   English   中英

使用自動更新計數器保持$ _SESSION活着

[英]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.

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