PHP - gotowe skrypty - licznik zliczający liczbę odwiedzin dla każdego pliku osobno

DZIAŁANIE: Zobacz podstrony :
Plik PHP nr.1
Plik PHP nr.2
Plik HTML nr.1
Plik HTML nr.2
 

Kod:

Plik 117funkcja.php :

Plik 117funkcja_dla_html.php :

Pliki 117plik_php_01.php oraz 117plik_php_02.php :

Pliki 117plik_html01.htm oraz 117plik_html02.htm : ( tak naprawdę *.shtm - o tym na końcu piszę )

Ewentualne Objaśnienia:

Tutaj mamy przykład licznika, który zlicza dla każdej pod strony naszego serwisu - osobno liczbę odwiedzin. Zlicza zarówno dla plików *.php jak i *.htm.
W zewnętrznym pliku - 117funkcja.php - napisaliśmy sobie funkcję do zliczania i przechowywania ilości odwiedzin, następnie już tylko odwołujemy się do tejże funkcji z dokumentów PHP czy HTM.

Popatrzmy jednak na kod naszej funkcji - bo jak widzicie jest tam parę nowych rzeczy, o których wcześniej nie mówiłem.
- pojawia się zmienna $_SERVER["SERVER_NAME"] - to zmienna (tablica), która określa nam serwer z jakiego łączy się nasz skrypt - na początku naszej funkcji sprawdzamy czy serwer to nasz lokalny komputer ( czyli adresy localhost oraz IP=127.0.0.1) - bo nie chcemy aby ktokolwiek inny miał możliwość korzystania z naszego licznika w innych serwisach. I jak widać jeżeli serwer - to inny serwer niż podane przez nas w warunku - pojawia się komunikat oraz funkcja exit kończąca działanie kodu PHP.
- jeżeli łączymy się z poprawnego serwera, mamy coś nowego mianowicie w kodzie zapis :

$plik_licznika = "liczniki/".rawurlencode($_SERVER["REQUEST_URI"]); - to dzięki temu zapisowi, dla każdego naszego dokumentu w folderze 'liczniki' jest tworzony osobny plik zawierający informacje o ilości odwiedzin danej części naszego serwisu.

Jak to działa ?? To proste - funkcja rawurlencode - to funkcja, która koduje podany jako parametr łańcuch znaków zakodowany w formacie URL w sposób zgodny ze specyfikacją RFC 1738. Czyli prościej mówiąc funkcja ta zamienia znaki, które nie powinny się znaleźć w nazwie pliku do postaci '%XX', gdzie XX stanowi kod znaku. Zapewnia nam to bezpieczeństwo skryptu - nie będzie można wykorzystać 'ukośnika', który może oznaczać "cofanie się" w drzewie katalogów.
Więc jak widać w katalogu 'liczniki' tworzony jest dla każdego pliku ( pod strony ) plik o takiej samej nazwie jak on sam ( przetworzony przez funkcję rawurlencode ).

Odczyt nazwy aktualnego pliku zapewnia nam zmienna $_SERVER["REQUEST_URI"] .

Jak widać w plikach PHP po prostu dołączamy plik z funkcją poprzez polecenie include - a następnie wywołujemy funkcję licznik().

W plikach HTMLowych jest troszkę inaczej - mamy dodatkowy plik PHP, który włącza do siebie plik z funkcją, a następnie wywołuję funkcję licznik() [ czyli taki sam kod jak pod strony z rozszerzeniem *.php] - i właśnie ten plik dołączamy ( mechanizm SSI ) do pod stron HTMLowych - co widać na wyżej przedstawionych kodach.

Ważne : mechanizm SSI mimo wszystko jest mechanizmem, która zwalnia działanie serwera - bo każdy plik przed posłaniem użytkownikowi musi zostać zinterpretowany przez serwer. Dlatego stosuje się powszechnie przyjętą metodę - plikom wykorzystującym SSI nadaje się rozszerzenia *.shtm oraz *.shtml - dzięki temu tylko te pliki będą interpretowane przez serwer, a pliki HTM i HTML nie.

Przedstawiony skrypt jest dość ciekawy - jednak mimo wszystko przy dużej ilości pod stron naszego serwisu - warto przechowywać informację o odwiedzinach w bazie danych.