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! :)