/ / Видалити сеанс в cakephp, коли ви вийдете з сторінки? - php, session, cakephp, cakephp-2.3

Видалити сеанс в cakephp, коли ви вийдете з сторінки? - php, session, cakephp, cakephp-2.3

Як і де можна користуватися

$this->Session->destroy()

Щоб сесія була знищена кожного разу, коли сторінка закрита?

І як я можу тримати сеанс відкритим, поки сторінка не закрита, незалежно від часу?

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

Відповіді:

1 для відповіді № 1

Сеанси зберігаються на сервері, тому, якщо веб-переглядач закритий або користувач переходить на іншу сторінку, немає зобов'язання інформувати сервер про цю дію.

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

Перевірте інформацію про сеанс у Пекінська книга CakePHP для отримання додаткової інформації щодо сесій


0 для відповіді № 2

Ви можете спробувати використати $(window).unload(function(){alert("Closing browser")}); І робити AJAX виклик на сервер, щоб знищити сесію, але це може не працювати на деяких браузерах і вже застаріла функція в jQuery 1.8 для отримання додаткової інформації http://api.jquery.com/unload/


0 для відповіді № 3

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

$ this-> Session-> destroy ()

він знищить всі файли cookie та сесії, але якщо ви хочете знищити певний сеанс, ви можете зробити це за допомогою цього коду

$ this-> Session-> destroy ("$ val");

Тут $ val представляє особливий сеанс, щоб знищити