Obsługa Cookies w JavaScript: Różnice pomiędzy wersjami

Z ToProste
Skocz do: nawigacji, wyszukiwania
m
m
Linia 51: Linia 51:
 
</syntaxhighlight>  
 
</syntaxhighlight>  
  
 +
 +
== 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.
 +
 +
<syntaxhighlight lang="javascript">
 +
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
 +
}
 +
}
 +
}
 +
</syntaxhighlight>
  
 
== Zobacz też ==
 
== Zobacz też ==

Wersja z 15:23, 5 lut 2014

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ż

<htmlet>zobacz-tez</htmlet>

Linki zewnętrzne