Единственный вариант, отслеживать активность, как я нашёл (но есть ещё сокеты,но не хочется, париться).
Вот клиент только зашёл на сайт, и после onload пошёл запрос мол сделай меня online, дальше каждые 5 мин к примеру шлём запрос мол я ещё здесь, и метку online с меня не снимай.
А если пользователь ушёл, и запрос на сервер ни пришёл, какие дальнейшие действия?

Я ж не сервере не могу запускать скрипт через интервал)
Спустя 1 час, 5 минут, 29 секунд (14.05.2011 - 21:09) fallow написал(а):
Что нет идей?
Спустя 9 минут, 24 секунды (14.05.2011 - 21:19) sharki написал(а):
fallow
Не отвечают потому что тупо лень :D это простейшая ведь задача.
Примерный алгоритм:
1) Как ты говоришь отправляешь запросы каждые 5 минут, даже можно и чаще, минуты 2-3 хватит
2) Создай в БД поле с типом DATETAME, и туда помещай актуальную дату КАЖДОГО запросу, ну update поля.
3) Если это функция на стороне сервера, то сделай еще одну функцию, которая будет запускаться КАЖДЫЙ раз от кого бы не произошел запрос, что она делает?
4) Данная функция делает запрос на получение всех пользователей у которых
5) Получаешь всех пользователей, потом создаешь некий массив вида array(0 => 3); (самый стандартный массив где ключ простой, а значение это id пользователя)
потом обновляешь свою таблицу где id IN (".implode($arr).") и вуаяля.
Не отвечают потому что тупо лень :D это простейшая ведь задача.
Примерный алгоритм:
1) Как ты говоришь отправляешь запросы каждые 5 минут, даже можно и чаще, минуты 2-3 хватит
2) Создай в БД поле с типом DATETAME, и туда помещай актуальную дату КАЖДОГО запросу, ну update поля.
3) Если это функция на стороне сервера, то сделай еще одну функцию, которая будет запускаться КАЖДЫЙ раз от кого бы не произошел запрос, что она делает?
4) Данная функция делает запрос на получение всех пользователей у которых
`date` + INTERVAL 3 MINUTE < NOW()
5) Получаешь всех пользователей, потом создаешь некий массив вида array(0 => 3); (самый стандартный массив где ключ простой, а значение это id пользователя)
потом обновляешь свою таблицу где id IN (".implode($arr).") и вуаяля.
Спустя 39 минут, 34 секунды (14.05.2011 - 21:58) fallow написал(а):
Спасибо, чё 
Да всё глубже и глубже в js уходить начал, позабыл sql, или спать хочу

Да всё глубже и глубже в js уходить начал, позабыл sql, или спать хочу

Спустя 2 месяца, 2 дня, 1 час, 8 минут, 23 секунды (16.07.2011 - 23:07) NoNsYs написал(а):
Лучше не через onLoad а через Ajax всё это прокрутить