2013-04-09 1 views
2

Как и где я могу использоватьУничтожьте сеанс в cakephp, когда вы покинете страницу?

$this->Session->destroy() 

Для сессии будут уничтожены, когда страница закрыта?

И как я могу держать сеанс открытым до тех пор, пока страница не будет закрыта, независимо от времени?

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

ответ

1

Сессии хранятся на сервере, поэтому, если браузер закрыт или пользователь переходит на другую страницу, нет никаких обязательств сообщать серверу об этом действии.

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

Проверить Сессии Информация в CakePHP cookbook для получения дополнительной информации regardin Sessions

0

Вы можете попробовать использовать $(window).unload(function(){alert('Closing browser')}); И сделать Ajax вызова к серверу, чтобы уничтожить сессию, но это может не работать в некоторых браузерах и уже устаревшая функция в JQuery 1.8 для получения дополнительной информации http://api.jquery.com/unload/

0

Если вы использовали компоненты Auth cakephp 3.0, то вам не нужно ничего делать во время сеанса и управления файлами cookie, выполняемых компонентами ядра сеанса.

$ this-> session-> уничтожить()

он уничтожит все данные куки и сессии, но если вы хотите, чтобы уничтожить конкретную сессию, то вы можете сделать этот код

$ this-> Session -> уничтожить ('$ Вэл');

здесь, $ val представляет собой определенную сессию для уничтожения

Смежные вопросы