如何在php中增加会话时间

时间:2018-05-14 08:11:18

标签: php session cookies session-cookies

在我的Web应用程序中,当我尝试通过传递用户名和密码来启用身份验证服务时。以下是处理身份验证的代码。

ini_set("session.cookie_lifetime","7200"); // 120 minutes
ini_set("session.gc_maxlifetime","7200"); // 120 minutes
session_start();
$_SESSION['logged_in'] = true; 
$_SESSION['last_activity'] = time(); /
$_SESSION['expire_time'] = 2*60*60; 
$_SESSION["user_id"]=$user_id;
$_SESSION["username"]=$username;
$_SESSION["accesslevel"]=10;
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
$proxy = $_SERVER["REMOTE_ADDR"];
$time = time();
header('Location: ../XXXX.php');

在上面的代码中,我试图在session_destroy();之前建立2小时的不活动状态。但是当我在浏览器中检查cookie信息时,有效期与创建日期相同。

  

帮助我延长cookie时间以实现系统空闲。

Image with the cookie inspector (Where it says "Fecha de caducidad" its the Expire date)

如何实现这一点,指导我。提前谢谢!

1 个答案:

答案 0 :(得分:0)

创建cookie(会话初始化)后,这些设置无效

ini_set("session.cookie_lifetime","7200");
ini_set("session.gc_maxlifetime","7200"); 

你必须检查会话是否超时:

if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity'] > $_SESSION['expire_time'] )) { 
        session_destroy();
 } // check last activity
$_SESSION['last_activity'] = time(); // update last activity time