Народ, механизм отображения присутствия на сайте можно
накручивать до бесконечности.
Когото устроит просто список тех кто обращался к страницам за макс session.gc_maxlifetime = 1440 , если сайт УЖЕ использует сессии , по авторитетному мнению ФАНАТА стартовать сесии только для подсчета пользователей онлайн расточительство. (способ подсчета файлов в директории с временем доступа не меньше требуемого, при желании можно из этих файлов и выкусить ники, если они серелизуются в сессии)
Можно делать другие способы завязанные на время последнего получения страницы с сайта, но результат будет не лучше чем сказал
jonjonson :
"присутсвие пользователя" - это бред умалишённого, так как нет пользователя на сайте! Нет! Ни в каком виде нет. И контакта его нет непрерывного. Но можно с определённой достоверностью определить время последнего от него запроса и, если больше не запрашивалось от него нихрена с сайта в течение разумного периода времени, то заявить с гордостью за свою сообразительность, что он мыслями не с теми, кто сейчас делает запросы.
Так что за присутствие пользователя придется принять уменно последнее обращение к сайту, а хотелось бы тот факт, что страницы сайта открыта у него в броузере. Вообще идеально хотелось бы как в аське еще статусы отошел или n/a, но такое уже только через ACTIVX только, и не каждый согласиться всякую бяку принять

Разумное минимальное время, каждый выбирает сам для своего проекта, если оно 1 минута, то возникает противоречие : на практике никто не ходит по страницам так часто как бы нам хотелось, поэтому в страницу нужно встроить механизм рефреша служебного скрипта на сайте.
Простейший способ был описан в моем первом посте (через невидимый фрейм), демонстрирует этот механизм.
недостатки : видно в строке состояния что происходит рефреш, и нагоняется лишний трафик .
Трафик уменьшить легко добавив как справедливо заметил
grigori обработкой хедера if-not-modified-since.
В любом случае запрет на кеширование очевидный момент, который подразумевается.
Способы скрыть рефреш каждый выбирает в меру своей квалификации т.е. вместо невидимого фрейма можно встраивать механизм передергивания скрипта хоть во флешки, хоть через явоскрипты (AJAX)
Даже сам вывод на странице статусов других пользователей можно оживить тоже.