Skrypt
<? ########################### Licznik uq / online if ($_SERVER["HTTP_X_FORWARDED_FOR"] != "") { $IP = $_SERVER["HTTP_X_FORWARDED_FOR"]; $proxy = $_SERVER["REMOTE_ADDR"]; $host = @gethostbyaddr($_SERVER["HTTP_X_FORWARDED_FOR"]); } else { $IP = $_SERVER["REMOTE_ADDR"]; $host = @gethostbyaddr($_SERVER["REMOTE_ADDR"]); } // tutaj pobieramy IP i sprawdzamy czy delikwent łączy się przez proxy $ref = $_SERVER['HTTP_REFERER']; $plik = "lista"; $lip=explode("!@!@!",$buffer); // zamiast wrzucać date, ip i proxy linijka pod linijką, wrzucamy je w jedną i oddzielamy je ciągiem znaków !@!@! :) $string = file_get_contents($plik); // pobieramy zawartość pliku odwiedziny i przypisujemy do zmiennej $string if (preg_match('/'.$szukane.'/i', $string)) // szukamy czy istnieje już wpis z taką datą i adresem IP { } else // jeśli niema takiego wpisu to zostaje on dodany { } { $unikalne++; // taki durny sposób na policzenie linijek - czyli ilości całkowitej wejść na naszą stronę :) } for ($i=0; $i<=$liczba_wierszy; $i++) // pętla przelatuje przez wszystkie zapisane wiersze w poszukiwaniu odwiedzin z dziś, wczoraj i z ostatnich 7 dni { { $dzis++; // zlicza ilość wszystkich wpisów z dziejszą datą } { $wczoraj++; // zlicza ilość wszystkich wpisów z wczorajszaą datą } { $tydzien++; // zlicza ilość wszystkich wpisów z ostatnich 7 dni } } $do_zapisania="$ID:$czas"; // sposób w jaki zapisujemy aktualnie znajdującą się osobę na stronie: "id sesji":"czas w sekundach" $min_czas=300; // czas przez jaki zapisane jest wejście danej osoby $plik2="online"; // plik w którym są zapisywane osoby aktualnie przeglądające naszą stronie - ostatnie 5 minut $nowa=false; // ustala domyślną zmienną która oznacza że nie będzie nowego wpisu if ($users=="") // sprawdzenie czy jest już jakiś wpis w pliku "online", jeśli nie to dodaje wpis: "$ID:$dzis_data" { $online=1; $save=$do_zapisania; } else // w innym przypadku sprawdza istniejące wpisy { { if ($old_id!=$ID) // jeżeli istniejący id się różni od aktualnie sprawdzanego id { if ($czas-$old_time < $min_czas) { $new[]=$old_id.":".$old_time; // przypisanie zmiennej $new[] która jest tablicą id sesji starych danych } } else { $new[]=$do_zapisania; // przypisanie zmiennej $new[] która jest tablicą id sesji $ID:$dzis_data $nowa=true; // zezwolenie na dodanie nowego wpisu } } if ($nowa==false) // jeżeli nie ma nowego wpisu { $new[]=$do_zapisania; // przypisanie zmiennej $new[] która jest tablicą id sesji $ID:$dzis_data } $online=count($new); // zliczenie ilości wpisów, które oznaczają ilość osób aktualnie znajdujących się na naszej stronie } function listaip() { function truncateUrl($url,$start,$end,$limit){ $newUrl = $poczatek.'...'.$koniec; return $newUrl; }else{ return $url; } } $plik = "lista"; switch ($_GET['pokaz']) { case'uq': { echo"<TABLE BORDER='1'> <tr> <td width='15%'><font size='1' face='Tahoma' color='red'><b>Data</td> <td ><font size='1' face='Tahoma' color='red'><b>IP</td> <td width='30%'><font size='1' face='Tahoma' color='red'><b>Host</td> <td ><font size='1' face='Tahoma' color='red'><b>Adres strony</td> </tr>"; for ($i=$liczba_wierszy-80; $i<=$liczba_wierszy-1; $i++) // wyświetlimy teraz ostatnie 20 wpisów, zamiast wszystkich których może być kilka tysięcy... { echo "<tr><td><font size='1' face='Tahoma' color='#c0c0c0'><b>$linia[1] $linia[0]</td> <td><font size='1' face='Tahoma' color='#c0c0c0'><b>$linia[2]</td> <td><font size='1' face='Tahoma' color='#c0c0c0'><b>$linia[3]</td> <td><font size='1' face='Tahoma' color='#c0c0c0'><b><a href='$linia[4]'>";echo truncateUrl($linia[4],50,5,55);echo"</a></td> </tr>"; } } break; } } ?>
Wyświetlanie
$plik = "lista"; function truncateUrl($url,$start,$end,$limit){ $newUrl = $poczatek.'...'.$koniec; return $newUrl; } else { return $url; } echo"<table width='755px' border='1' rules='all' frame='void'> <tr align='center'> <td width='16%'><font size='1' face='Tahoma' color='red'><b>Data</td> <td ><font size='1' face='Tahoma' color='red'><b>IP</td> <td width='30%'><font size='1' face='Tahoma' color='red'><b>Host</td> <td ><font size='1' face='Tahoma' color='red'><b>Adres strony</td> </tr>"; for ($i=$liczba_wierszy-80; $i<=$liczba_wierszy-1; $i++) // wyświetlimy teraz ostatnie 20 wpisów, zamiast wszystkich których może być kilka tysięcy... { echo "<tr><td><font size='1' face='Tahoma' color='#c0c0c0'><b>$linia[1] $linia[0]</td> <td><font size='1' face='Tahoma' color='#c0c0c0'><b>$linia[2]</td> <td><font size='1' face='Tahoma' color='#c0c0c0'><b>";echo truncateUrl($linia[3],31,5,36);echo"</td> <td><font size='1' face='Tahoma' color='#c0c0c0'><b><a href='$linia[4]'>";echo truncateUrl($linia[4],42,5,47);echo"</a></td> </tr>"; }
Plik lista
17:50:15!@!@!27.07.2012!@!@!7*.25*.1*7.141!@!@!*7-25*-15*-1*1.adsl.inetia.pl!@!@! 17:46:42!@!@!28.07.2012!@!@!*7.2*4.1*9.1*8!@!@!7*-*5*-1*9-**8.adsl.inetia.pl!@!@!
I niestety nie wyświetla mi tych rekordów z pliku lista, wygląda to tak: http://ss-host.pl/images/1jvj.png