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.