Состояние сессии

  • Автор темы AndrewA
  • Дата начала

AndrewA

Guest
Как узнать ушел или нет

Originally posted by sergee
А если пользователь передумал у ушел со страницы не завершив все действия, то просто удалить временную таблицу. Вот, а не могу я как раз сделать эту проверку, т.е. покинул ли пользователь страницу или нет. Если не сложно подскажите ее алгоритм.
Можно сделать фрейм содержащий документ из одного фрейма. Для пользователя он будет выглядеть так, как обычная страница, но... Пользователь будет работать на странице внутри фрейма и соответсвенно существует возможность знать чего он там делает с помощью скрипта
<script>
window.onunload=function(e)
{
window_onunload()
return true;
}

function window_onunload()
{
open('clear.php', 'Exit', 'scrollbars=no,status=no,left=0,top=0,width=50,height=50');
}
</script>

Если пользователь ушел на любую страницу - запустится clear.php, который все зачистит и самоуничтожится с помощью функции
<script>
var n=2;
function window_onload()
{
if (n == 0) window.close();
n = n - 1;
window.setTimeout('window_onload()',10);
}
</script>

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

Мысль пришла
А что если во фрейм-контейнере воспользоваться javascript функцией setTimeout? Предположим каждые 5 минут она дергает сервер обращением document.location = "restore.php" с выводом ответа сервера в невидимый фрейм? Тогда, пока окно броузера открыто - сессия не прекратится, а если пользователь куда-то пошел гулять по инету, или закрыл броузер - сработает onunload и корректное завершение по clear.php
 

wizard

Новичок
Re: Как узнать ушел или нет

bpdhfotycndj (извращенство), к тому же уже не неужное никому
 

Фанат

oncle terrible
Команда форума
андрюва.
правила надо читать.
читать надо правила.
 
Сверху