PHP - licznik odwiedzin filtrujący adresy IP

DZIAŁANIE: 2379
 

Kod:

Ewentualne Objaśnienia:

Oto przykład licznika opartego na pliku tekstowym, który zarazem nie uwzględnia wejść z określonych adresów IP - nie zwiększa stanu licznika jeżeli trafi na taki adres IP u odwiedzającego.
Na początku mamy zadeklarowaną funkcję, która sprawdza czy adres IP odwiedzającego jest zabroniony - jeżeli tak funkcja zwraca TRUE jeżeli nie FALSE. Przedstawiłem 2 możliwości zapisu tej funkcji - a właściwie mechanizmu porównywania adresu IP gościa z adresami z tablicy $ip_table - pierwszy z nich jest zapewne krótszy. Wykorzystuje on poznaną już funkcję array_search, drugi natomiast korzysta z naszej poczciwej pętli foreach . Oba sposoby są dobre do wykorzystania w tym przykładzie moim zdaniem.
Oczywiście jeżeli takich adresów miałoby być wiele zawsze można zastosować bazę danych i odpowiednio w pętli sprawdzać/porównywać adresy i dalej zależnie od IP dokonywać operacji UPDATE na odpowiednim polu w bazie, lub też nie.

Funkcja pokazLicznik zajmuje się zwiększaniem bądź też nie stanu licznika oraz wyświetlaniem jego aktualnej wartości.
- na początek sprawdzamy czy plik txt z licznikiem istnieje - jeżeli nie tworzymy go, wpisujemy jeden znaczek "-" oraz funkcja automatycznie zwraca wartość 1 jako wartość licznika
- jeżeli plik licznika już istnieje otwieramy go z możliwością dopisywania oraz odczytujemy poprzez funkcję filesize stan licznika ( rozmiar pliku )
- następnie sprawdzamy co nam zwróci funkcja blokadaIP z argumentem jako IP odwiedzającego - jeżeli zwróci false - inkrementujemy zmienną stan, do pliku z licznikiem dopisujemy jeden znaczek "-"
- zamykamy plik, zwracamy wartość zmiennej $stan