Як і де можна користуватися
$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 представляє особливий сеанс, щоб знищити