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