А такой алгоритм не катит?: 
	1) Заходит человек под именем 2) ему создается сессия 3) запоминаем в БД в таблицу X связку "имя->сессия" 4) заходит "наш" пользователь на сайт 5) по таблице X для всех имен проверяется наличие файла сессии 5.1) если имеется - > выводим что присутствует 5.2) если не имеется - > удаляем из X запись.  | 
	
		
 ну можно посчитать количество файлов сессий *JOKINGLY* 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Необходимые издержки, кому надо точно - можно в таблицу X добавить поле "время последнего захода" и фильтровать в пункте 5) еще по нему.  | 
	
		
 Цитата: 
	
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 в общем, для начала нужно определиться, что значит "пользователь находится на сайте" 
	 | 
	
		
 "пользователь находится на сайте" - значит что пользователь открыл браузер и "бродит" по моему сайту... а если пользователь закрыл браузер, либо закрыл вкладки моего сайта или нажал на сайте выход - значит пользователь не находится на сайте. 
	 | 
	
		
 сохранять в ответ на каждый запрос пользователя в базе время его запроса, и его SESSID к примеру 
	на запрос "кто на сайте" выводить тех пользователей, которые посылали запрос в течении последних T секунд каждые Т секунд с клиента посылать запрос на сервер При этом вы получите большую точность чем обычно, и повесившийся сервер. поэтому на практие не стоит применять идею с регулярными запросами. лучше стоит обойтись без них, а в качестве T выбрать среднее время просмотра страницы на своем сайте, к примеру  | 
	
		
 спасибо 
	 | 
| Часовой пояс GMT +3, время: 05:07. |