Zakładając statystyki, dostajemy dwie rzeczy do umieszczenia na stronie. Pierwsza to button Stat.pl, a druga - kod zliczający wywołania. Cała sztuczka polega na tym, aby nie wysyłać go, gdy wchodzimy my, a wysyłać - gdy ktokolwiek inny. W ten oto sposób nasze odwiedziny nie zostaną zliczone. Jest jeden mały szkopuł... najlepiej jest mieć stały adres IP. Nie jest to niezbędny warunek, ale z pewnością najefektywniejszy. W pozostałych wypadkach możemy postąpić następująco:
- Jeżeli zmianie ulega np. tylko ostatni człon adresu, napiszmy wyrażenie regularne, które zablokuje wyświetlanie statystyk, gdy pasować będą jedynie pierwsze trzy człony.
- Sprawdźmy nazwę naszego serwera. W PHP możemy to zrobić funkcją gethostbyaddr(). Porównajmy, jakie nazwy zwraca nam przy kolejnych połączeniach z siecią. Często jest tak, że zmianie ulega tylko początek nazwy, natomiast cała reszta (identyfikująca sieć naszego providera) jest stała. I znowu możemy wyrażeniem regularnym sprawdzić (nie)zmienność pewnej tylko części nazwy, uzyskując blokowanie swych wejść.
Zacznijmy od napisania prostego skryptu PHP, który pobierze parametry naszych wejść na stronę. Może on wyglądać tak:
code'REMOTE_ADDR'.'
';
echo gethostbyaddr($_SERVER'REMOTE_ADDR').'
';
?>/code
Uruchamiamy go w przeglądarce i spisujemy wyniki. Następnie bierzemy w obróbkę fragment właściwego skryptu wysyłającego kod statystyk. Umieszczamy tam instrukcję IF z warunkiem sprawdzającym IP/maskę. Przypominam, że adres IP, z którego nadchodzi do serwera WWW żądanie, przechowywany jest w zmiennej $_SERVER'REMOTE_ADDR'. Dla pewności, że wszystko działa, dodajemy warunek ELSE, który powiadomi nas, że wizyta nie jest liczona. Będziemy wtedy mogli własnoocznie przekonać się, że wszystko działa.
Jako ż najczęściej stronę przed wysłaniem w sieć testujemy na lokalnym serwerze, wypadałoby także zabezpieczyć przed niepotrzebnym zliczaniem lokalne adresy IP: 127.0.0.1 i 192.168.*.*. Zresztą stat.pl prawdopodobnie i tak tego nie zliczy (zły host), ale po co obciążać łącze zbędnymi żądaniami?














