我有一个为购物车创建会话的网站。
$_SESSION['cart']=array();
似乎服务器在X时间不活动后自动杀死会话,我假设这是在php.ini中设置的(但我的主机不授予我访问权限,他们只是让我告诉他们这些更改,所以我不能玩耍!:()。
有没有更好的方法让会话保持活动状态,例如2天或特定的分钟/小时?
答案 0 :(得分:14)
在您的脚本中致电session_set_cookie_params()
之前致电session_start()
:
$session_lifetime = 3600 * 24 * 2; // 2 days
session_set_cookie_params ($session_lifetime);
session_start();
// ...
<强>
session_set_cookie_params()
强>
设置php.ini文件中定义的cookie参数。此功能的效果仅持续脚本的持续时间。因此,您需要在调用session_set_cookie_params()
之前为每个请求调用session_start()
。
或者,您可以将php.ini文件的session.cookie_lifetime
指令更新为2天(以秒为单位)。
答案 1 :(得分:1)
设置一个cookie并在配置中更改会话使用cookie
session_start();
set_cookie("PHPSESSID", session_id(), time() + 3600 * 2);
这使你的会话保持2小时