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