если залогинились, суем в базу 1 если вышли суем в базу 0, если оборвалась связь, суем в базу 0. потом PHP: <? $kol=mysql_num_rows($tablica); for ($i=0; $i<$kol; ++$i) {$array=$mysql_fetch_array($tablica); echo $array['user'];} Кароче чтото типо этого...
Для вывода зарегестрированных. В шапке суем, если аутентификация юзера = 1, добавляем ему в поле "online" time()+300. При выводе списка выбираем: "SELECT login FROM users WHERE `online` > `".time()."`"; Выведет всех, кто проявлял в зарегестрированном состоянии активность в течении 5 минут. Так же с этим подходом можно вывести, во сколько последний раз юзер был на сайте. Для вывода ВСЕХ юзеров, в том числе гостей, юзаем переделанную популярную функцию: PHP: function online(){ session_save_path("/tmp"); if($directory_handle = opendir(session_save_path())){ $count = 0; while(false !== ($file = readdir($directory_handle))){ if($file != '.' && $file != '..'){ if(time() - fileatime(session_save_path()."/".$file) < 180)$count++; } } closedir($directory_handle); return $count; }else{ return false; } } echo online(); - выведет все сессии за последнии 3 минуты. Совместив два предыдущих способа получаем список зарегенных и гостей.