PHP会话到期时间 - 保持会话活动达特定的分钟/小时/天

时间:2013-04-19 15:52:28

标签: php session cookies timeout

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

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

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

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

2 个答案:

答案 0 :(得分:14)

在您的脚本中致电session_set_cookie_params()之前致电session_start()

$session_lifetime = 3600 * 24 * 2; // 2 days
session_set_cookie_params ($session_lifetime);
session_start();
// ...

来自documentation

  

<强> 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小时