Rozdział 8. ♦ Cookies i sesje 227
else i f(i sSet($_GET['nazwa'])){
setCookiet"nazwa". $_GET['nazwa']. timeO + 60 * 60 * 24 * 365): include("thanks.html“):
}
else{
echo("<htm1>"); echo("<body>"):
echo("Witamy. zostałeś(aś) rozpoznany jako $_C00KIE[nazwa]"):
echo("</body>"):
echo("</html>"):
}
W kodzie skryptu znajduje się złożona instrukcja warunkowa if.. .else.. .if, która rozpoznaje trzy różne sytuacje. Pierwsza rozpatrywana sytuacja ma miejsce wtedy, gdy nie jest ustawiony indeks nazwa w tablicy S_C00KIE oraz nie jest ustawiony indeks nazwa w tablicy $_GET. Oznacza to, że została wywołana strona index.php, a na komputerze użytkownika nie ma cookie o nazwie nazwa; nie zostały również przekazane dane z formularza. Wczytywana jest zatem treść pliku form.html zawierającego kod formularza i skrypt kończy działanie.
Druga z rozpatrywanych sytuacji występuje wówczas, gdy w tablicy $_GET znajduje się indeks nazwa, co oznacza, że do skryptu zostały przesłane dane z formularza. W takiej sytuacji za pomocą funkcji setCookie do przeglądarki jest wysyłane cookie o nazwie nazwa, wartości odczytanej z tablicy $_GET i czasie ważności ustawionym na 365 dni (60 sekund * 60 minut * 24 godziny * 365 dni), począwszy od aktualnego czasu, oraz wczytywana jest zawartość pliku thcmks.html, który powinien zawierać informację o przyjęciu danych.
Trzecia rozpatrywana sytuacja ma miejsce wtedy, gdy w tablicy $_C00KIES znajduje się indeks nazwa. Na stronie jest wtedy wyświetlana informacja o rozpoznaniu użytkownika.
Cookies możemy również wykorzystać do zliczania liczby odwiedzin danego użytkownika na naszej witrynie, a ściślej do zliczania wywołań witryny z danej przeglądarki (może się przecież zdarzyć, że z jednego profilu przeglądarki na danym komputerze korzysta wielu użytkowników). Takie zadanie realizuje skrypt widoczny na listingu 8.4.
Listing 8.4. Wykorzystanie cookie do zliczania liczby odwiedzin strony
<?php
$dni = 30:
i f(!i sSet($_COOKIE[1 hi ts'])){
Jhits - 1;
else{
Shits = intval($_C00KIE[‘hits']):
$hits++:
setCookieChits". "$h1 ts". timeO + 60 * 60 * 24 * $dni):
?>
<html>
<body>