Witam, przedstawię jak napisać prosty skrypt który będzie pokazywał ilość gości online.
Wymagania co do serwera:
Obsługa php i mysql.
Najpierw musimy stworzyć tabele w bazie danych, tak wiec wchodzimy do phpmyadmin następnie do zakładki sql po czym wklejamy kod:
Teraz tworzymy plik np online.phpKod php:CREATE TABLE major_online (ip VARCHAR(255) NOT NULL, czas INT NOT NULL);
Trzeba pamietac ze musi bys ustawione polaczenie z baza:
oczywiście wypełniamy to własnymi danymi.Kod php:<?
mysql_connect('adres serwera','nazwa uzytkownika','haslo') or die('Błąd połaczenia');
mysql_select_db('nazwa bazy') or die('Blad polaczenia z baza');
Teraz właściwy skrypt.
Krótko opisze co robi skrypt:Kod php:$czas=mktime();
$staryczas=mktime()-60;
$ip=$_SERVER['REMOTE_ADDR'];
mysql_query("DELETE FROM major_online WHERE czas<'$staryczas'");
$query=mysql_query("SELECT * FROM major_online where ip ='$ip'");
$query=mysql_num_rows($query);
if(!$query){
mysql_query("INSERT INTO major_online VALUES('$ip','$czas')");
}else{
mysql_query("UPDATE major_online SET czas='$czas' WHERE ip='$ip'");
}
$query=mysql_query("SELECT * FROM major_online");
$query=mysql_num_rows($query);
echo 'Osób online: '.$query;
?>
- Pobiera aktualny czas, czas 'wstecz' i adres ip.
- Następnie kasuje wszystkie rekordy z bazy które maja czas starszy od naszego czasu 'wstecznego' (czas w bazie < od czasu ze zmiennej $staryczas).
- Sprawdza czy ip z jakiego przebywamy na stronie jest w bazie (jeżeli byliśmy np 5minut temu naszego ip juz nie ma bo skasowało go poprzednie zapytanie 2. )
- Jeżeli zapytanie nie zwróciło wyniku dodaje nowy rekord z aktualnym czasem i naszym ip. Jeżeli natomiast nasz adres ip istnieje w bazie (byliśmy np 30sek wcześniej) zostanie zaktualizowany tylko aktualny czas.
- No i końcowa sprawa zlicza ilość rekordów w tabeli i wyświetlamy wynik.
By wyświetlić ilość gości online wystarczy dodać np do index.php linijkęKod php:<? require("online.php"); ?>Poradnik major @ wiaderko.com
Zakaz kopiowania na inne fora.










