Как я могу уничтожить сессии, если пользователь закрывает окно браузера или уходит со страницы в php? - PullRequest
0 голосов
/ 21 марта 2010

У меня есть несколько сессий, которые сохраняются. Я хочу уничтожить все сеансы, если пользователь закрывает окно браузера или одну вкладку или уходит со страницы. Есть ли способ, которым я могу это сделать?

Ответы [ 5 ]

1 голос
/ 21 марта 2010

В наши дни это довольно сложно со всеми современными браузерами с вкладками. Таким образом, вы можете рассчитывать только на время ожидания сеанса. Ничего страшного, хотя. Вы уверены, что это действительно нужно? Это причинит боль пользователям в нижней части.

0 голосов
/ 01 ноября 2012

Первый набор $config['sess_expiration'] to 0

Это, однако, приводит к созданию файла cookie, который фактически длится 2 года из-за кода в system/libraries/Session.php файле

.$config['sess_expiration'] to -1

Это просто не сработало для меня.Когда я вошел в систему, он сохранил переменную сеанса, затем, когда я перешел на следующую страницу, он исчез.

0 голосов
/ 21 марта 2010

Вы не можете уничтожить сеанс, когда браузер закрывается !!! Сессия нуждается в уничтожении инструкции на стороне сервера. Вы можете назначить сеанс уничтожением через некоторое время бездействия.

Изучите http://www.php.net/manual/en

0 голосов
/ 21 марта 2010

Аналогично ответу Донни, но вместо использования Codeigniter вы можете просто указать встроенному классу Session, что файл cookie PHPSESSID истекает при закрытии браузера:

session_set_cookie_params(0);

Это необходимо вызывать после session_start() на каждой используемой вами странице (в противном случае значение по умолчанию сбрасывается из параметра ini session.cookie_lifetime).

0 голосов
/ 21 марта 2010

Ну, я использую CodeIgniter для всего моего проекта. CodeIgniter имеет класс сеанса, в котором данные хранятся с использованием файлов cookie. Я могу установить тайм-аут куки в конфиге приложения. Если установить значение 0, файлы cookie будут сохраняться только при открытии страницы, а когда все вкладки страницы закрываются в браузере, файлы cookie будут автоматически удалены.

Если вы не хотите использовать другую платформу, вы можете использовать куки-файлы для хранения данных сеанса, которые будут действовать только до тех пор, пока пользователь не закроет вкладку браузера. Используйте setcookie для записи данных cookie и считывания их из переменной $_COOKIE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...