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

Z ToProste
Skocz do: nawigacji, wyszukiwania
m
m
Linia 25: Linia 25:
  
 
'''W jednym przypisaniu można zapisać tylko jedno ciasteczko''', przy czym '''operacja nie usuwa pozostałych ciasteczek, a jedynie zmienia parametry jednego z nich'''.
 
'''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ę
 +
<syntaxhighlight lang="javascript">
 +
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;
 +
}
 +
</syntaxhighlight>
 +
 +
 +
== Odczyt ciasteczka ==
 +
Odczytanie wartości zapisanego ciasteczka można zrealizować np. w ten sposób:
 +
<syntaxhighlight lang="javascript">
 +
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 "";
 +
}
 +
</syntaxhighlight>
  
  

Wersja z 15:55, 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

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

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 "";
	}


Zobacz też

<htmlet>zobacz-tez</htmlet>

Linki zewnętrzne