228 PHP i MySQL dla każdego
<? echoCWitamy. w ciągu ostatnich $dni dni byłeś(aś) na tej stronie Shits razy."): ?>
</body>
</html>
Kod rozpoczyna się od przypisania wartości pomocniczej zmiennej o nazwie dni. Określa ona, ile dni zachowa ważność cookie przechowujące dane, a zatem również w jakim okresie będą zliczane wywołania strony. Następnie za pomocą funkcji isSet jest sprawdzane, czy w tablicy $_C00KIE istnieje indeks hits, a zatem czy przeglądarka przesłała cookie do serwera. Jeśli nie, wartość zmiennej hits jest ustawiana na 1; jeśli zaś tak, wartość zmiennej hits jest odczytywana z tablicy $_C00KIE i jej wartość jest zwiększana o jeden. W obu przypadkach do przeglądarki wysyłane jest cookie o nazwie hits i wartości zapisanej w zmiennej hits. Wartość zmiennej hits jest również wykorzystywana do wyświetlenia dotychczasowej liczby odwiedzin na stronie.
Obsługujący transmisje WWW protokół HTTP jest protokołem bezstanowym, pracującym w trybie pytanie-odpowiedź. Oznacza to, że każde żądanie pobrania elementu strony WWW jest niezależne od innych. Taki protokół nie daje możliwości stwierdzenia, czy nadchodzące żądania pochodzą od tego samego, czy też od innego użytkownika. Pewnym rozwiązaniem tego problemu, pozwalającym na taką identyfikację są, opisane powyżej, cookies. Nie jest to jednak mechanizm doskonały. Przede wszystkim niektóre przeglądarki (co prawda obecnie rzadko spotykane) mogą cookies nie obsługiwać; większość współczesnych przeglądarek ma również opcje pozwalające użytkownikom zabronić przyjmowania cookies, czasami cookies są też odrzucane np. przez zaawansowane programy typu firewall. Do tego bezpośrednie korzystanie z cookies nie jest zbyt wygodne. Dlatego też w PHP został wprowadzony bardzo wygodny mechanizm identyfikacyjny, nazywany sesjami. Mechanizm sesji pozwala na śledzenie działań danego użytkownika na witrynie, od pierwszego z nią połączenia aż do jej opuszczenia. Umożliwia to m.in. prostą obsługę logowania i uwierzytelniania użytkowników, śledzenie preferencji, wyświetlanie spersonalizowanych stron, realizację wirtualnych koszyków na zakupy itp.
Każda sesja użytkownika posiada własny, unikalny identyfikator. Ten identyfikator to losowa liczba generowana przez PHP. Jest ona przechowywana w komputerze użytkownika, najczęściej w cookies. Jeśli jednak przeglądarka użytkownika nie akceptuje cookies lub jeśli autor witryny nie życzy sobie przechowywania identyfikatora w cookies, jest on dodawany do adresu URL. Z pewnością każdy spotkał się kiedyś z sytuacją kiedy kliknięcie odnośnika na stronie powodowało wywołanie adresu URL zawierającego długą listę, wydawałoby się przypadkowych, znaków (rysunek 8.3). Zazwyczaj jest to właśnie identyfikator sesji.