Я создаю веб-приложение, которое позволяет пользователям входить в базу данных и обновлять некоторые записи. Я не профессиональный PHP-разработчик.PHP, сеансы и выход из браузера
Я только что заметил, что после открытия браузера Chrome, который отправился на последнюю страницу, он был на несколько дней назад (с повторным запуском), который был одним из страниц веб-сайта, на котором вы можете только доступ после входа в систему. Я подумал, что это странно, поскольку сессия должна была истекла.
В верхней части каждой страницы у меня есть:
session_start();
, если пользователь входит в бэкэнд успешно я установить переменный сеанс, как это:
$_SESSION['userAuthenticated'] = TRUE;
, если пользователь нажмет выход из системы кнопка делает это:
$_SESSION = array();
session_unset();
session_destroy();
В моем файле php.ini у меня есть набор последующих:
session.cookie_lifetime 0 (0 for both local value and master value)
session.gc_maxlifetime 900 (900 for both local value and master value)
Было мое понимание, что сеанс останется в живых в течение 15 минут и будет уничтожен, если пользователь полностью покинет браузер. Я только что тестировал это, и я могу полностью выйти из браузера, открыть его снова и получить доступ к одной из страниц, для которой требуется логин.
Я делаю что-то не так здесь - я не всегда могу ожидать, что пользователи нажмут кнопку «Выход», но я ожидаю, что сессия не будет работать через 15 минут или если они полностью покинут браузер.
UPDATE: вот как я проверяю, если пользователь уже аутентифицирован:
if (!isset($_SESSION['userAuthenticated']) and $_SESSION['userAuthenticated'] !== TRUE) {
header('Location: index.php');
die;
}
'$ _SESSION = array();' не требуется. Также, пожалуйста, покажите, как вы проверяете '$ _SESSION ['userAuthenticated']', чтобы проверить, зарегистрирован ли пользователь или нет. – Raptor
Возможно, вы загрузите страницу из кеша.Показывает ли он, что вы вошли в систему, если обновляетесь? – Mike
@Raptor - я использую это для проверки подлинности пользователя: if (! Isset ($ _ SESSION ['userAuthenticated']) и $ _SESSION ['userAuthenticated']! == TRUE) { header ('Location : index.php '); die; } – user982124