Как предотвратить выход из системы при закрытии браузера?
Как я могу заставить сеанс оставаться активным всегда, если пользователь не закроет его.
я приведу пример того, как я это делаю.
я сделал это, чтобы достичь этого, но, по-видимому, это не работает:
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);
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 Не рекомендуется.