7

我有一个为购物车创建会话的网站。

$_SESSION['cart']=array();

似乎服务器在 X 时间不活动后自动终止会话,我假设这是在 php.ini 中设置的(但我的主机没有授予我访问权限,他们只是让我告诉他们更改,所以我不能玩! :()。

有没有更好的方法让会话保持活跃,例如 2 天或特定的分钟/小时数?

4

2 回答 2

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 天(以秒为单位)。

于 2013-04-19T15:55:57.660 回答
1

设置一个 cookie 并在您的配置中更改会话使用 cookie

session_start();
set_cookie("PHPSESSID", session_id(), time() + 3600 * 2);

这可以让你的会话保持 2 小时

于 2013-04-19T15:56:36.467 回答