YGREG.COM - Cookies 

29.07.2004
Nowa oferta hostingowa.

29.07.2004
Kurs XPath.

13.10.2002
Poprawiony problem z oznaczaniem przeczytanych wiadomości na forum.

13.06.2002
PHP z Zend Engine 2 już dostępne!

17.02.2002
Zmiany w organizacji serwisu.








Początek strony

(C)opyright 1997-2007
by Grzegorz Plebański
INDEX I ARTYKUŁY I SKRYPTY I DOWNLOAD

Dodaj stronę
do ulubionych

Artykuły i kursy
   PHP
   XML
   CGI
   HTML
   Inne

Skrypty PHP
   Komunikacja
   Księgi gości
   Statystyki
   Głosowania
   Bannery
   Inne
Skrypty CGI

Download



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:

   
   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.