2013-11-19 5 views
1

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

JavaScript:

$(window).on("beforeunload", function(){ 
    alert("Beforeunload called"); 
    $(document).load("vve_inc/php/vve_logout.php"); 
}); 

РНР:

<?php 
session_start(); 
session_destroy(); 
?> 

Оповещение работает отлично, но PHP-скрипт не делает. У кого-нибудь есть идеи?

+0

Чтобы заставить выходить из строя, вам будет лучше с «без активности» aproach. Проверьте, как долго пользователь неактивен, и если это превысит ваш трэш, закройте сеанс. – DarkBee

ответ

1

Предупреждение прекращает выполнение кода.

Выполнение запроса AJAX при разгрузке нестабильно и не всегда выполняется.

Было бы лучше, если бы у вас была только кнопка выхода из системы или тайм-аут сеанса.

0

qwuertynl верен, однако вы можете использовать ignore_user_abort(); в PHP, и не имеет значения, завершен ли запрос AJAX или нет. Я успешно использовал это в больших масштабах в прошлом.

http://php.net/manual/en/function.ignore-user-abort.php

Вызов этой функции сделает ваш PHP скрипт выполнился до конца, независимо от того, или не прерывается запрос.

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