簡體   English   中英

30分鍾后8小時重命名的php會話丟失了數據

[英]8hours renamed php session lost data after 30 minutes

我的默認PHP會話是30分鍾。

我得到了第一個代碼:

<?php
session_set_cookie_params(28800);
session_name('TEST');
session_start();
session_regenerate_id(true);

$_SESSION['test'] = 'jam';
?>

第二個:

<?php
session_set_cookie_params(28800);
session_name('TEST');
session_start();
session_regenerate_id(true);

echo $_SESSION['test'];
?>

事實是,我的會話在30分鍾沒有活動的情況下丟失了。

定時示例:

00:00 : run first script
00:10 : run seconde script : i got "jam"
00:20 : run seconde script : i got "jam"
00:40 : run seconde script : i got "jam"
01:11 : run seconde script : session is lost

希望您能給我任何線索解決此問題。

在PHP手冊的session_set_cookie_params()頁面上查看此答案 ,看看是否有幫助!

Cookie的壽命只是等式的一部分。 服務器端會話存儲是另一個。 確保session.gc_maxlifetime也設置得足夠高。

您僅設置cookie的生存期,與會話數據的實際生存期無關。 如果使用的是將會話保存到文件系統的默認會話保存處理程序,則會話數據的生存期由session.gc_maxlifetime指令控制。 您可以使用ini_set覆蓋此值,如下所示:

ini_set('session.gc_maxlifetime', 28800);

請注意,如果您還有其他使用會話的腳本,並且它們共享會話的相同保存路徑,則最小gc_maxlifetime將用於該目錄中的所有會話。 因此,如果要更改gc_maxlifetime值,通常意味着您還希望指定自己的會話存儲路徑。 您可以使用session_save_path函數:

session_save_path('/path/to/your/sessions');

暫無
暫無

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

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