Я использую класс SimpleUsers и создал систему входа в систему на основе базы данных.
Вот SimpleUsers на Github
Вот мой вопрос:
Как прекратить сеанс PHP на закрытие окон? Когда окна закрыты, сеанс для вошедшего в систему пользователя еще открыт. Как я могу закрыть это?
Я пытался использовать
session_set_cookie_params(0);
Но это не помогло.
Пожалуйста, помогите мне.
Я предполагаю, что под «окнами» вы подразумеваете вкладку браузера / окно веб-браузера.
Простой ответ: вы не можете, если пользователь не просит. Вы можете попробовать какой-нибудь код JavaScript с помощью метода «onclose», который отправит запрос на ваш сайт для закрытия сессии.
Cons этого метода, когда у кого-то есть 2 вкладки и, наконец, одна закрыта, он выйдет из системы
Вы должны уничтожать сессии только тогда, когда кто-то нажимает кнопку «Выйти».
Редактировать в комментарии
Если вы хотите защитить (привязать) сеанс к IP, вы можете сохранить его в $_SESSION
IP-адрес пользователя, который начал сеанс и завершил сеанс в случае изменения IP
if($_SESSION['user_ip'] !== $_SERVER['REMOTE_ADDR']){
// do the code to terminate session.
}
Других решений пока нет …