Obsługa Cookies w JavaScript: Różnice pomiędzy wersjami
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>