Musisz skorzystać z sesji :
Przy logowaniu użytkownika informację o użytkowniku zapisujesz w zmiennej $_SESSION['USERNAME']
Następnie przy każdym logowaniu w tabeli gdzie masz użytkowników (u mnie jest to tabela aktywni) o takiej strukturze :
id | imie | czas_out | aktywny |
dodajesz do aktywny znacznik 'a' np w taki sposób.
Kod
$active = 'a';
$aktywny = "UPDATE aktywni SET aktywny = '" . $active . "' WHERE kto = '" .$_SESSION['USERNAME'] . "'";
mysql_query($aktywny);
Odwrotnie robisz wtedy kiedy ktoś klika "wyloguj"
Kod
$active = 'd';
$aktywny = "UPDATE aktywni SET aktywny = '" . $active . "' WHERE kto = '" .$_SESSION['USERNAME'] . "'";
mysql_query($aktywny);
Teraz najważniejsza część ( to co napisałem powyżej poprzez pobranie z tabeli aktywni wszystkich tych którzy mają 'a' w aktywny da CI pogląd kto jest zalogowany i kto nie jeśli wszyscy będą zawsze klikać zaloguj/wyloguj.) Z praktyki wiem że nigdy tak nie ma ponieważ najczęściej zamykana jest przeglądarka i osoba nadal ma status 'a' mimo że osoby już dawno nie ma na stronie. W takim wypadku stosujemy ten kod (czyli dodajemy dodatkowy ogranicznik czasowy).
Kod
<?php
#nawiązujemy połączenie z bazą
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
#ustalamy stronę kodową
mysql_query("SET NAMES 'utf8'");
#do jednej zmiennej przypisujemy obecną datę (w formacie podanym poniżej) do drugiej zmiennej tą samą datę minus 3 minuty
$tajm = date("dmYHis");
$czas = date("dmYHis")-300;
#w tabeli która przechowuje dane o użytkoniwkach przypisujemy datę wejścia na stronę osobie która jest zalogowana
$dodaj_czas = "UPDATE aktywni SET czasout = '" . $tajm . "' WHERE imie = '" .$_SESSION['USERNAME'] . "'";
mysql_query($aktywny);
#następnie pobieramy informację z bazy czy dana osoba jest aktywna i czy kliknęła na jakiś link w ciągu ostatnich 3 minut
$sql = "SELECT * FROM aktywni WHERE aktywny = 'a' and czasout > '" .$czas . "'";
$result = mysql_query($sql);
$numrows = mysql_num_rows($result);
# w zmiennej $numrows mamy informację o ilości użytkowników online
echo 'Aktualnie zalogowanych : ' . $numrows;
#w ten sposób możesz wyświetlić osoby które są online
while($row = mysql_fetch_array($result))
{
echo $row['imie'];
}
mysql_close();
?>
i tutaj najważniejsze - skrypt musi być umieszczony w nagłówku albo stopce każdej z podstron (w ten sposób czas pobytu będzie ciągle uaktualniany i sprawdzana będize aktywność użytkownika na stronie). Najlepiej zrobić to przez include()
Mam nadzieję że pomogłem.
Pozdrawiam
Mariusz
upss troszkę nie doczytałem tematu...

Ale z tego co napisałem można łatwo zrobić to co Ty potrzebujesz...