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:
echo "Witaj $nazwisko";
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:
YGREG.COM - Cookies
http://www.ygreg.com/druk.php?cookies
1 z 2
2010-02-14 21:09
setcookie('nazwisko');
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.
Tomasz Szmigiel
tomasz.szmigiel@inetplus.pl
http://www.php.computerzone.pl
http://www.ygreg.com
YGREG.COM - Cookies
http://www.ygreg.com/druk.php?cookies
2 z 2
2010-02-14 21:09