Cookies
Często można się spotkać na stronach www, że wchodząc na jakąś
stronę poraz kolejny zna ona np. nasze imię które wpisaliśmy
wcześniej.
Na tym właśnie polega rola cookies, dzięki nim możemy zapisywać pewne
informacje np. o użytkowniku i gdy wejdzie on poraz kolejny na naszą
stronę wykorzystać je.
Dane te zapisywane są u użytkownika na komputerze, a nie po stronie serwera.
Aby operować na cookies, należy użyć funkcji setcookie().
Najprostszym sposobem
stworzenia cookie jest wykonanie funkcji:
| |
setcookie('nazwisko', 'Kowalski');
|
|
Po takim stworzeniu cookie, jeżeli ta osoba odwiedzi naszą stronę poraz kolejny będziemy w zmiennej
$nazwisko mieli jego dane czyli "Kowalski", czyli możemy w prosty
sposób wyświetlić np. tekst powitalny:
Cookie bardzo łatwo także zmienić, przykładowo jeżeli na naszą stronę wejdzie
Pan Nowak to robimy następującą operację:
| |
setcookie('nazwisko', 'Nowak');
|
|
Co nam zapisze nową wartość dla cookie nazwisko.
Muszę tutaj wspomnieć, że można także ustawić pewien czas aktualności
danego cookie, czyli przykładowo ustawić że po dwóch dniach od
wizyty to nazwisko będzie już nieaktualne.
Aby zrobić cookie aktualne przez określony czas należy do funkcji setcookie()
dodać trzeci parametr którym jest czas kiedy cookie ma wygasnąć.
Można
to zrobić w najstępujący sposób:
| |
$datetime = mktime(0,0,0,1,1,2002);
setcookie('nazwisko', 'Kowalski', $datetime);
|
|
Teraz nasze cookie wygaśnie wraz z dniem 1 stycznia 2002 roku.
Po krótce opisze jak działa funkcja mktime(). Zamienia ona podaną date
na "time stamp'a" Unixo'wego. Może się to wydać dziwne ale jest
to inaczej mówiąc ilość sekund jaka upłyneła od 1-1-1970 do
podanej daty. Funkcja mktime() przyjmuje takie parametry jak mktime(godzina,minuta,sekunda,miesiac
,dzien,rok). Jeżeli jesteś zainteresowany manipulacją czasem to
proponuję przeczytanie artykułu "Data i czas w PHP", gdzie wyjaśniłem
więcej zagadnień z tematyki czasu w PHP.
W prosty sposób możemy także usunąć nasze cookie:
To usunie cookie nazwisko.
Bardzo ważną sprawą przy tworzeniu cookie jest to że musi ono zostać wysłane
przed wyświetleniem jakiegokolwiek tekstu. Inaczej PHP wyrzuci błąd,
że wysłanie cookie niepowiodło się. Pokaże to na przykładzie:
| |
setcookie('nazwisko', 'Kowalski');
echo "Tutaj wyświetlamy jakiś napis";
|
|
Powyższy przykład zadziała, jednak poniższy kod wyrzuci błąd spowodowany
tym że przed wysłaniem cookie wypisaliśmy tekst "Tutaj wyświetlamy
jakiś napis".
| |
echo "Tutaj wyświetlamy jakiś napis";
setcookie('nazwisko', 'Kowalski');
|
|
Tak że cookie musimy wysyłać przed wysłaniem jakiegokolwiek elementu
HTML'a.
|