我跟着从这里的答案,但它并没有为我工作:
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)定义了会话信息在被垃圾回收前保留的最大时间集。 –