Cookies

Czasami chcia│oby siΩ stworzyµ tak▒ stronΩ, by ka┐da osoba mog│a j▒ ogl▒daµ wed│ug w│asnych upodoba±. Wszystko fajnie, tylko jak umo┐liwiµ danej osobie konfiguracjΩ tak, by nastΩpnym razem kiedy odwiedzi stronΩ by│a tak, jak sobie ustawia│a? Z pomoc▒ przychodz▒ nam w│a╢nie Cookies, czyli ciasteczka!

DziΩki ciasteczkom mo┐emy zapisywaµ kr≤tkie informacje na komputerze czytelnika! Mo┐emy wiΩc zapisaµ u niego samego, co on sobie poustawia│, a nastΩpnie przy generowaniu strony wzi▒µ to pod uwagΩ (odczytaµ cisteczka z jego komputera).

Do zapisu cookies u┐ywamy funkcji: setcookie. Jako pierwszy parametr podajemy nazwΩ naszego ciasteczka, jako drugi jego warto╢µ, a jako trzeci - opcjonalny - datΩ wa┐no╢ci. Je╢li nie okre╢limy wa┐no╢ci, dane cookies bΩd▒ pamiΩtane dop≤ki przegl▒darka czytelnika jest w│▒czona (dobre jest to np. przy logowaniu). Z chwil▒ jej wy│▒czenia wszystkie cookies s▒ tracone.

Po u┐yciu funkcji setcookie nie wolno wy╢wietlaµ ┐adnych napis≤w, nale┐y przes│aµ nag│≤wek do przegl▒darki - u┐yµ funkcji head.

Do odczytywania warto╢ci ciasteczek s│u┐y tablica asocjacyjna o nazwie $HTTP_COOKIE_VARS. Jako indeks podajemy nazwΩ cookies, a ona zwr≤ci jego warto╢µ.

setcookie("NAZWA","WARTOSC"); // to cookies dziala dopoki wlaczona // jest przegladarka setcookies("Druga_nazwa","Tez_wartosc",time()+3600); // to cookies dziala przez jeda godzine header("Location: plik.rzs"); // wysylamy naglowek i kazemy // wczytac plik plik.rzs exit; // koniec


Przyk│ad:

Teraz przyk│ad. Je╢li by╢my chcieli wy╢wietliµ na stronie informacjΩ, ile razy dana osoba ju┐ na niej by│a, u┐yliby╢my w│a╢nie cookies. Jak? W kroku pierwszym, odczytaliby╢my warto╢µ daneg ciasteczka, nastΩpnie j▒ zwiΩkszyli, zapamiΩtali i wy╢wietlili. Proste, nie?

Na stronie index.html robimy link do pliku zliczaj.php, czyli piszemy:

<a href='zliczaj.php'>Wej╢cie na stronΩ</a>

W pliku zliczaj.php robimy:


$LICZBA_ODW=$HTTP_COOKIE_VARS["LICZBA_ODW"];
$LICZBA_ODW+=1;
setcookie("LICZBA_ODW", "$LICZBA_ODW",time()+3600*24*31);
// dziala na miesiac 

header("Location: http://www.binboy.com.pl/BHP.htm");

No i koniec! :)