Obsługa Cookies w JavaScript
Wszyscy wiemy do czego służą ciasteczka i wbrew obiegowym opiniom nie należy obawiać się ich. Ci, którzy chcieliby wykorzystywać ciasteczka w swoim serwisie nie zawsze wiedzą jak to zrobić. Z myślą o takich właśnie użytkownikach powstał niniejszy artykuł, który ma przybliżyć używanie Cookies w JavaScript.
W JavaScript wartości ciasteczek są dostępne w zmiennej document.cookie. Jest to ciąg znaków o formacie:
nazwa_cisteczka_1=wartosc_1; nazwa_cisteczka_2=wartosc_2; nazwa_cisteczka_3=wartosc_3
Spis treści
Zapis ciasteczka w JavaScript
Aby zapisać ciasteczko, należy przypisać odpowiednią wartości zmiennej document.cookie, która wymaga następującego formatu:
name=value; domain=example.com; path=/; expires=GMTDateString; secure
- parametry obowiązkowe:
- name - nazwa ciasteczka
- parametry opcjonalne:
- value - wartość przypisana polu name
- domain - domena
- path - ścieżka
- expires - czas ważności ciasteczka
document.cookie = "nazwa_cisteczka=wartosc_cisteczka; domain=localhost; path=/; expires=3600";
W jednym przypisaniu można zapisać tylko jedno ciasteczko, przy czym operacja nie usuwa pozostałych ciasteczek, a jedynie zmienia parametry jednego z nich.
Można ująć to w funkcję
function setCookie(cname,cvalue,exdays){ var d = new Date(); d.setTime(d.getTime()+(exdays*24*60*60*1000)); var expires = "expires="+d.toGMTString(); document.cookie = cname + "=" + cvalue + "; " + expires; }
Odczyt ciasteczka w JavaScript
Odczytanie wartości zapisanego ciasteczka można zrealizować np. w ten sposób:
function getCookie(cname){ var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i<ca.length; i++){ var c = ca[i].trim(); if (c.indexOf(name)==0) return c.substring(name.length,c.length); } return ""; }
Sprawdzenie ciasteczka w JavaScript
Poniższa funkcja sprawdza czy ciasteczko imie_uzytkownika istnieje na komputerze użytkownika.
- Jeśli nie, wyświetla prośbę o podanie imienia, następnie zapisuje je w ciasteczku imie_uzytkownika.
- Jeśli tak, odczytuje imię użytkownika z ciasteczka imie_uzytkownika i wyświetla powitanie.
function checkCookie(){ var user=getCookie("imie_uzytkownika"); // Pobierz ciasteczko imie_uzytkownika // Test ciasteczka if (user!=""){ // Ciasteczko istnieje alert("Hello " + user + "! Witamy ponownie!"); }else{ // Ciasteczko nie istnieje user = prompt("Proszę podać imię:",""); if (user!="" && user!=null){ setCookie("imie_uzytkownika",user,365); // Zapisz ciasteczko } } }
Zobacz też
<htmlet>zobacz-tez</htmlet>
- Obsługa JavaScript w przeglądarce
- Jak sprawdzić czy klient ma włączoną obsługę JavaScript
- Obsługa Cookies w PHP