2013-12-16 3 views
-4

Использование jQuery или что-то, то как я могу только незадана сессии и только если посетитель закрыть страницуКак сбросить сессию Закрыть страницу

unset($_SESSION['foo']); 

Я знаю, что единственный способ в JavaScript, чтобы обнаружить, что такие вещи являются onunload & onbeforeunload события

так, как я могу применить его, чтобы сбросить $_SESSION['foo'] о закрытии страницы

Но почему я хочу на отключенное если посетитель закроет страницу?

я буду применять его в своем простом вебе-сайте, основанный на просмотр YouTube видео , чтобы предотвратить посетитель открыть watching.php много много раз так я заставлю их закрыть его первым перед вызовом нового видео смотреть так моя идея уронить сессию и при обнаружении выдаст сообщение об ошибке , но проблема будет, как освободить эту сессию, так что я нужна помощь js сделать это на странице watching.php

Большое спасибо

+0

Похоже, что это слишком интенсивно для сервера. Что-то вроде длинного опроса! –

+0

для вашего здорового не комментируют: «Что делать, если пользователь отключил JavaScript?» – user3038548

+0

^Это тоже хорошо! : P Я об этом не думал! –

ответ

0

L ooks, как это, слишком интенсивно работает на сервере. Что-то вроде длинного опроса! Кроме того, сеансы PHP автоматически уничтожаются при закрытии окна. Но все же, если вы настаиваете, вы можете использовать что-то вроде прикрепления AJAX вызова с событием onbeforeunload таким образом:

$(window).on('beforeunload', function(){ 
    $.getScript("killsession.php"); 
}); 

Это получает JavaScript, прежде чем окно закрыто и в вашем killsession.php, вы можете дать задержку с sleep() и вы можете отключить сеанс. Ваш код будет как:

<?php 
    unset($_SESSION) 
    session_destroy(); 
    sleep(5); 
?> 

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

+1

спасибо большое, и он отлично работает, и я действительно понимаю, что вы предупреждаете меня и ведите меня за лучший и безопасный метод, но с моей простотой веб-сайта это не повредит серверу .. спасибо еще раз – user3038548

+0

Добро пожаловать, с удовольствием! :) –

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