JavaScript - Cookie, ciasteczka
| DZIAŁANIE: |
Pokaż ciastka! |
Kod:

Ewentualne Objaśnienia:
Tutaj zajmiemy się obsługą cookie w JS. Nie będę bardzo szczegółowo omawiał
czym są cookie poczytaj sobie o tym w kursie php [
tutaj oraz
tutaj ] .
Zobaczmy na przykłady :
- okienko pyta nas o podanie imienia, następnie zmienna ciastko przyjmuje ciąg "Odwiedzajacy=escape(imie)"
funkcja escape służy do zamienienia niedozwolonych znaków w cookie na
inne (na przykład spacje na %20 itd.) . Funkcja unsescape to odwrotność
tej funkcji. Dalej ustawiamy ciastko zapisem document.cookie = ciastko .
- teraz chcemy nasze ciastko odczytać i wyświetlić (jak wiemy ma ono postać "Odwiedzajacy=costam"
więc wykorzystujemy znane już split do rozdzielenia tego co podane od słowa
Odwiedzajacy. Korzystamy z unescape i wyświetlamy ciastko
- teraz chcemy zmienić nasze ciastko, więc musimy stworzyć po prostu takie samo
ciastko, ale z inną wartością. Klikając na łącze widzisz, że ciastko zostało
zmienione.
- dalej w komentarzach pokazałem jak w jednym ciastku można zapisać wiele
informacji - użyłem znaków / do oddzielenia danych oraz znaków : aby oddzielić
parametr od jego wartości. Wszystko to potem można odczytać i ładnie wyświetlić
za pomocą znanych już narzędzi jak pętle, funkcje rozdzielające i tablice.
Przyznacie jednak, że jest to dość nieciekawe i np. w PHP jest to o wiele wiele
wygodniejsze
- dalej mamy przykład jak ustawić ciastko, ale z jakąś konkretną datą ważności
(aby ciastko usunąć należy je 'utworzyć' z datą wstecz analogicznie jak w PHP).
Cookie potrzebuje, aby podana do określenia czasu ważności była w formacie UTC i
żeby datę przekształcić na ten format korzystamy z toUTCString . Do
samego ciastka musimy jeszcze dodać parametr expires tak jak to pokazana
na przykładzie (pamiętajcie o oddzielaniu parametrów cookie średnikiem)
- ostatni przykład to kolejne parametry ciastka path - ścieżka dostępu do
cookie (najwyżej położony w hierarchii katalog, który może z danego cookie
korzystać), zapis path:/; oznacza katalog główny, dla jakiegoś innego
folderu byłoby to path=/katalog; , domain oznacza domenę z jakiej
mamy dostęp do cookie.
W tym przykładzie utworzone zostały 2 cookie, które widzicie przez naciśnięcie łącza (3 nie widać bo domena jest wpisana domena.com). Jak widać ciastka to po prostu document.cookie zawierający dość skomplikowany ciąg, jeśli chcemy coś z tego wyciągnąć trzeba obsługiwać cały ten ciąg (każe ciastko) itd. Przyznacie, że jest to dość nie fajne.
Na szczęście istnieje takie coś jak biblioteki - poniżej prezentuje Wam kod
biblioteki z serwisu WebMonkey (jest ona dobrze skomentowana, więc nie
będę tego tłumaczył) :
