Как увеличить время сеанса в php - PullRequest
0 голосов
/ 14 мая 2018

В моем веб-приложении, когда я пытаюсь запустить службу аутентификации, передавая имя пользователя и пароль. Ниже приведен код, который выполняет аутентификацию.

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');

В приведенном выше коде я пытаюсь установить 2 часа бездействия до session_destroy();. Но когда я проверяю информацию о куки в браузере, срок действия совпадает с датой создания.

Помогите мне продлить время cookie для достижения простоя системы.

Изображение с инспектором файлов cookie (где указано "Fecha de caducidad" дата истечения срока действия)

Как этого добиться, направь меня. Заранее спасибо!

1 Ответ

0 голосов
/ 14 мая 2018

Эти настройки не действуют после создания файла 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
...