Obsługa Cookies w JavaScript: Różnice pomiędzy wersjami
m (Utworzył nową stronę „== Zobacz też == <htmlet>zobacz-tez</htmlet> * Obsługa JavaScript w przeglądarce * Jak sprawdzić czy klient ma włączoną obsługę JavaScript === Linki z...”) |
m (Zabezpieczył Obsługa Cookies w JavaScript ([edit=sysop] (na zawsze) [move=sysop] (na zawsze))) |
||
(Nie pokazano 7 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 1: | Linia 1: | ||
+ | Wszyscy wiemy do czego służą [[Ciasteczko |ciasteczka]] i wbrew obiegowym opiniom [[Cookies |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 | ||
+ | |||
+ | |||
+ | <syntaxhighlight lang="javascript"> | ||
+ | document.cookie = "nazwa_cisteczka=wartosc_cisteczka; domain=localhost; path=/; expires=3600"; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | '''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 w JavaScript == | ||
+ | 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> | ||
+ | |||
+ | |||
+ | == 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ż == | ||
<htmlet>zobacz-tez</htmlet> | <htmlet>zobacz-tez</htmlet> | ||
* [[Obsługa JavaScript w przeglądarce]] | * [[Obsługa JavaScript w przeglądarce]] | ||
* [[Jak sprawdzić czy klient ma włączoną obsługę JavaScript]] | * [[Jak sprawdzić czy klient ma włączoną obsługę JavaScript]] | ||
+ | * [[Obsługa Cookies w PHP]] | ||
+ | |||
=== Linki zewnętrzne === | === Linki zewnętrzne === | ||
+ | * Pobierz przykład [http://files4you.get3.eu/index.php?&direction=0&order=nom&directory=skrypty/Obsluga%20Cookies%20w%20JavaScript Obsługa Cookies w JavaScript] | ||
* [http://riddle.jogger.pl/2007/11/07/kto-normalny-wylacza-javascript/ Kto normalny wyłącza JavaScript?!] | * [http://riddle.jogger.pl/2007/11/07/kto-normalny-wylacza-javascript/ Kto normalny wyłącza JavaScript?!] | ||
* [http://www.w3schools.com/js/js_cookies.asp Cookies w JavaScript] | * [http://www.w3schools.com/js/js_cookies.asp Cookies w JavaScript] |
Aktualna wersja na dzień 16:48, 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
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