@crafter a co jeśli "wyloguję się" nie wylogowywując się? Czyt.: zamknę okno przeglądarki i tyle?
Użytkowników online zdecydowanie lepiej zrobić inaczej - w osobnej tabeli w bazie danych. Przykładowa struktura:
Kod
userID - ID uzytkownika
loginTime - czas (w formacie UNIXowym) zalogowania
lastActive - czas (w formacie UNIXowym) ostatniej akcji (przy każdym przeładowaniu uaktualniasz tą wartość)
hidden - czy ukryty (1) czy nie (0)
Typ tabeli możesz dać MEMORY.
I proste zapytanie:
<?php
$limit = time() - 60
* 5; //5min wstecz $query = 'SELECT * FROM uzytkownicyOnline WHERE lastActive >= ' . $limit . ' ORDER BY lastActive DESC;';
?>
To zapytane wybierze wszystkich użytkowników, którzy wykonali jakąś akcję (odświeżyli stronę) w ciągu ostatnich 5 min.