我跟着從這裏的答案,但它並沒有爲我工作:
Is possible to keep session even after the browser is closed?如何讓瀏覽器在PHP中關閉後保持會話打開?
這裏是我試過的代碼:
$session_life = 2592000; // 30 days
session_set_cookie_params($session_life);
session_name('my_cart');
session_start();
// update the session_life
setcookie(session_name(),session_id(),time()+$session_life);
這樣做的問題是,每次瀏覽器關閉我仍然得到一個新的session_id,而不是舊的。
我正在使用數據庫將項目存儲在'my_cart'中,而session_id僅用於識別用戶向他們顯示自己的購物車。
對於我來說,保持用戶購物車運行30天的最佳方式是什麼?
這是我結束了代碼:
$cart_name = "my_cart";
$cart_life = 2592000; // 30 days
session_start();
if (isset($_COOKIE[$cart_name])) {
session_id($_COOKIE[$cart_name]);
}
setcookie($cart_name, session_id(), time()+$cart_life);
也許這是爲標準值(20:00)工作的餅乾,而不是會議。 – mawburn
您的會話也可以在服務器上過期。 php參數[session.gc_maxlifetime](http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime)定義了會話信息在被垃圾回收前保留的最大時間集。 –