Как предотвратить выход из системы при закрытии браузера?


Как я могу заставить сеанс оставаться активным всегда, если пользователь не закроет его.

я приведу пример того, как я это делаю.

я сделал это, чтобы достичь этого, но, по-видимому, это не работает:

session_start();
if ($_SESSION['user'] !== false) {
setCookie("session", $_SESSION['user'], time()+365*24*60*60);
}

и при закрытии Session:

setCookie("session", $_SESSION['user'], time()-365*24*60*60);
Author: Rimuru Tempest, 2016-06-04

1 answers

Функция session_start - это функция, которая создает и поддерживает сеанс. Внутренняя информация сеанса не должна передаваться в файлах cookie (session_start уже обрабатывает отправку файла cookie с session_id для этого).

Чтобы увеличить время, вы должны передать параметры session_start.

session_start([
    'cookie_lifetime' => 86400,
    'gc_maxlifetime' => 86400,
]);

В Примере Сеансы длятся один день cookie_lifetime используется для указания срока службы файла cookie, содержащего session_id, и с gc_maxlifetime времени очистки session_id внутри сервера.

Относительно проверка сеансов

Сеансы с session_start создаются при вызове функции и активны, даже если пользователь не вошел в систему (или не прошел аутентификацию). Вы несете ответственность за запись в данных сеанса (например: $_SESSION['user'] и/или $_SESSION['rol'] и т. д.) информации о том, вошел ли пользователь в систему или нет, кто он, какие разрешения у него были при входе в систему и т. д.

Помещать эту информацию в файлы cookie Не рекомендуется.

 5
Author: Emilio Platzer, 2016-06-04 14:56:49