Причина:
Если вы закроете окно браузера и снова откроете его, то в этот момент начинается второй сеанс с другим идентификатором, если в используемом веб-приложении есть сеансНа основе системы аутентификации пользователь должен снова войти в систему.В то же время пользователь должен дважды выйти из системы!
Решение:
Эта функция будет использовать реальный файл cookie для идентификатора сеанса и обновляет время истечения для каждого сценария.выполнение.Срок действия равен директиве PHP "gc_maxlifetime" (по умолчанию) или каждому пользовательскому значению.Итак, поместите эту функцию в ваш файл PHP.Нам это понадобится.
<?php
// $expire = the time in seconds until a session have to expire
function start_session($expire = 0)
{
if ($expire == 0)
$expire = ini_get("session.gc_maxlifetime");
else
ini_set("session.gc_maxlifetime", $expire);
if (empty($_COOKIE['PHPSESSID']))
{
session_set_cookie_params($expire);
session_start();
}
else
{
session_start();
setcookie("PHPSESSID", session_id(), time() + $expire);
}
}
?>
Теперь в верхней части страницы, где вы вводите session_id('the_session_id');
и session_start();
, удалите эти строки и начните сеанс с приведенным ниже кодом:
Чтобы начать сеанс со временем истечения, заданным конфигурацией php
start_session();
Чтобы начать сеанс, который истекает через 1 час:
start_session(3600);