Как отследить УХОД пользователя со странички.

AnriEE

Новичок
Как отследить УХОД пользователя со странички.

Доброго времени!
Ситуация такая. Есть страница, вход на которую разрешен только зарегистрированным пользователям. На ней раз в день происходит конференция длительностью час-полтора. Каким образом можно отследить (сохранить), какой пользователь и когда покинул данную страницу (закрыл окно/разлогинился) - желательно с точностью до 10 минут.
Все, само собой, на php.
Задавал вопрос в другом месте - советовали использовать jquery, в которой полный ноль.
 

Духовность™

Продвинутый новичок
Не ручаюсь за правильность советов, но

1 вариант - отсылать на сервер каждые 10 минут (если нагрузка не большая, то можно и раз в минуту) аяксом подтверждения, что у пользователя открыт обозреватель.

2 вариант - JavaScript имеет событие onUnload, которое можно повесить на документ и отсылать через аякс точное время ухода посетителя. Не знаю, сработает или нет...
 

AnriEE

Новичок
Теоретически это понятно. мне предложили вот такой код:
<script type="text/javascript">

function Report()
{
var a = new Date();
document.getElementById('rep').src = '/report.php?time='+a.getTime();
}
setInterval('Report()', 10000);
</script>

<img id="rep" border="0" width="1px" height="1px" />

Вопрос: каким должен быть report.php?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
AnriEE
Каким тебе надо, таким и будет. Там будет доступен идентификатор сессии юзера, по моему мнению должен быть, и время последнего обращения к скрипту.

то есть $_GET['time'] и $_SESSION['user_id'];
 

dimagolov

Новичок
img вынеси перед скриптом, а не после

и правильный код будет такой:
PHP:
//...
setInterval(Report, 10000);
лишняя анонимная обвертка тебе не нужна.

-~{}~ 03.11.10 11:54:

про report.php
чтобы не смущать браузер, стоит отдавать валидную картинку в 1 пиксель
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я бы слал обычный ajax запрос
 

dimagolov

Новичок
Я извиняюсь, а чем загрузка скрытой картинки или iframe-а вас не устраивает? Зачем писать минимум 10 строк кода с созданием объекта запроса или грузить килобайты кода либы, когда все прекрасно реализуется приведенными выше 5-ю строками? Понятно, что если ajax в проекте уже используется или будет использоваьться, то вполне логично и эту задачу решать через ajax, но иначе, зачем усложнять?

-~{}~ 03.11.10 12:34:

c0dex, зачем так нагло врать? ты дал ссылку на jQuery, который JS Framework, а не на объяснение того, что такое ajax.
 

Духовность™

Продвинутый новичок
Я извиняюсь, а чем загрузка скрытой картинки или iframe-а вас не устраивает?
пусть учится аяксу

ты дал ссылку на jQuery, который JS Framework, а не на объяснение того, что такое ajax.
я так смотрю на джиквери и понимаю, что убогость реализации Js в разных броузерах породила фактически ещё один язык, создав дополнительную надстройку над чистым JS, с которым по сути работать серьезно практически не возможно. так что пусть лучше сразу учит джиквери, ибо учить чистый js по сути бесполезно, да и никому не нужно.
 

dimagolov

Новичок
убогость реализации Js в разных броузерах
Ты жалуешься на то, что JS это ЯП и не имеет специализированных библиотек в стандарте или на то, что реализация его в разных браузерах имеет отличия в некоторых моментах? Причем отличия по большей части не в самом JS, а в том, как именно браузер предоставляет ему доступ к кишкам страницы.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
dimagolov
наезды офф, ага) Человек не знает как это реализовать на jQuery о чем он ясно написал, ему был дан линк. Остальное в гугл.
 

dimagolov

Новичок
у человека уже есть нормальное (простое и компактное) решение БЕЗ jQuery и прочих свистелок. зачем его куда-то посылать?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
dimagolov
Я не посылал его никуда, я дал линк на документацию, которую ему, возможно, будет полезно проглядеть. На будущее может проигодиться.

Как конкретно он сделает, через простой запрос на jquery или как в третьем посте, через img - ему решать. Не тебе и не мне.
 

AnriEE

Новичок
Ой, здесь прям война... Пожалуйста, объясните мне популярно, где я ошибаюсь:
Вставляю картинку и скрипт в файл (этот файл report.php или нет?), где у меня находятся пользователи. Скрипт опрашивает наличие пользователя через определенные промежутки времени. Потом я пытаюсь вытащить переменную $onlinetime = (isset($_GET['time']))? $_GET['time']:' не указано '; но она естественно не вытаскивается. В чем моя ошибка? (Ответ в ДНК не предлагать)
 

AnriEE

Новичок
да ничего особого. пришел на страничку народ, слушает докладчика в прямом эфире, чатится помаленьку. просто есть необходимость отслеживать, кто на сколько задержался в онлайне.
 
Сверху