我有一个为购物车创建会话的网站。
$_SESSION['cart']=array();
似乎服务器在 X 时间不活动后自动终止会话,我假设这是在 php.ini 中设置的(但我的主机没有授予我访问权限,他们只是让我告诉他们更改,所以我不能玩! :()。
有没有更好的方法让会话保持活跃,例如 2 天或特定的分钟/小时数?
在调用脚本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 天(以秒为单位)。
设置一个 cookie 并在您的配置中更改会话使用 cookie
session_start();
set_cookie("PHPSESSID", session_id(), time() + 3600 * 2);
这可以让你的会话保持 2 小时