Obsługa Cookies w JavaScript

Z ToProste
Skocz do: nawigacji, wyszukiwania

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

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ż

Reklama:


Linki zewnętrzne