Licznik osób online w PHP
Opiszę dziś, jak zrobić prosty licznik osób online na własnej stronie. Skrypt będzie opierał się o bazkę MySQL, więc powinieneś ją mieć.
Zrobimy to w najprostszy sposób, jak Ci potrzebne bajeranckie opcje to sam je sobie dopiszesz. Pierwszym etapem tworzenia statystyk, będzie utworzenie tabeli w bazie danych. Oto i jej kod :
1 2 3 4 5 | CREATE TABLE `online` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `czas` VARCHAR( 50 ) NOT NULL , `ip` TEXT NOT NULL ) ENGINE = MYISAM |
Tabela gotowa. Teraz utwórz plik online.php, wklej do niego :
1 2 3 4 5 6 7 8 9 10 11 12 13 | @mysql_connect('host','login','hasło') or die('Nieudane połączenie'); @mysql_select_db('nazwa_bazy') or die('Nieudane wybranie bazy'); $limit = 60; $czas_aktualny = time(); $czas_zliczany = $czas_aktualny - $limit; $ip = $_SERVER['REMOTE_ADDR']; $dodaj = mysql_query("INSERT INTO `online` (id, czas, ip) VALUES (NULL, '$czas_aktualny', '$ip')"); $usun = mysql_query("DELETE FROM `online` WHERE czas<'$czas_zliczany'"); $wyswietl = mysql_query("SELECT DISTINCT `ip` FROM `online`"); $osob = mysql_num_rows($wyswietl); echo "Osoby on-line: ".$osob; |
To by było na tyle, jeszczę objaśnie za co odpowiadają poszczególne linijki w kodzie.
- 1-2 – łączenie z bazą danych, wpisz swoje dane.
- 3-4 – wybieranie bazy, gdzie jest utworzona nasza tabelka “online”.
- 5 – za pomocą $limit, możemy ustawić jak czułu ma być nasz skrypt.
- 6 – ustawiamy czas aktualny za pomocą funkcji time().
- 7 – wyliczamy różnicę, pomiędzy czasem aktualnym a limitem, żeby nasz skrypt wiedział czy gość jest jeszcze online.
- 8 – do zmiennej $ip, przypisujemy adres IP gościa.
- 9 – dodajemy wpis, do bazy.
- 10 – usuwamy wpisy z bazy, osób, których już nie ma na naszej stronie.
- 11 – przypisujemy do zmiennej $wyswietl zapytanie.
- 12 – przypisujemy do zmiennej $osob, ilość rekordów z bazy, czyli ile mamy osób online.
- 13 – wyświetlamy informacje dla usera, ile osób nas aktualnie odwiedza.
Taki prosty i skuteczny sposób. Możemy go używać w dowolnym miejscu na stronie, wystarczy go tylko zaincludować. Wszelkie uwagi i pytania proszę pisać w komentarzach.


July 22nd, 2009 at 18:48
a znasz coś takiego jak komentarze? nadadzą się znacznie lepiej niż wypisywanie do czego służą poszczególne linijki skryptu.
July 22nd, 2009 at 19:55
fakt, moglem w komentarzach
January 21st, 2010 at 15:16
Dzięki!
February 8th, 2010 at 20:13
Dzięki wielkie za ten prosty skrypt, bardzo się przydał.
Pozdrawiam.
March 28th, 2010 at 20:16
Moim zdaniem to nie będzie działać, ponieważ przy każdym odswieżeniu strony koleś ma inny czas aktualny, więc polecenie distinct nie wykryje, takich samych wartosci.
March 28th, 2010 at 20:17
Ok nie dopatrzyłem