PHP - licznik osób on-line - MySQLi

DZIAŁANIE: brak działania

Kod:

Ewentualne Objaśnienia:

Oto przykład na zrobienie licznika osób on-line - z wykluczeniem odwołań z tego samego IP (chociaż możliwe jest, że z tego samego IP na stronie są inne osoby) oparty o bazę danych. Do obsługi bazy wykorzystałem moduł mysqli - przypominam dostępny w PHP 5 oraz MySQL wersji 4.1 lub wyższej.

Działanie jest bardzo proste zobaczmy :
- do zmiennej $regulacja ustawiamy czas (sekundy) po jakim dane będą usuwane z bazy danych - dane o osobach na stronie, ponieważ baza będzie pamiętać IP osoby oraz znacznik czasu - tzn. kiedy ta osoba pojawiła się na stronie. Jeżeli na stronę wejdzie ktoś inny - informacje o osobach, które były na niej 120sekund wcześniej zostają skasowane - rzecz jasna zmienną tą możemy zmieniać
- łączymy się z bazą MySQL i wpisujemy dane osoby, która właśnie weszła czyli IP oraz obecny czas (znacznik uzyskany funkcją time)
- usuwamy z bazy danych wpisy starsze niż "120 sekund temu" - w bazie może być wiele identycznych wpisów na przykład jeśli ktoś odświeża no to ponownie są wpisywane jego takie same dane, jednak dalej jak widzicie będzie jego "osoba liczona jako jedna", później po czasie 120 sekund dane te są usuwane
- po usunięciu nieaktualnych wpisów obliczamy ile jest osób na stronie - pobieramy z bazy wpisy, ale dzięki DISTINCT jedynie "pojedynczo" , powtarzające wartości są uwzględniane jako 1 element dlatego, żeby osoby z tego samego IP nie policzyć kilka razy rzecz jasna
- funkcja zwraca liczbę odczytanych rekordów, czyli liczbę osób on-line. Jeżeli wcześniej doszło do jakiegoś błędu funkcja zwracałą false
- wywołujemy naszą funkcję, jeżeli zwraca 1 piszemy, że jest 1 user on-line, jeżeli inną wartość wypisujemy ją, a jeśli zwraca false informujemy o błędzie

Aby przykład działał w bazie należy utworzyć odpowiednią tabelę u mnie nazywa się ona licznik_online oraz dla niej dwa pola : czas oraz ip .