Nume Tutorial: Cookie-uri part. 1
Descriere: Cookie-uri part. 1
Download: -
Autor: Anonim
Sursa (Link-ul oficial): -
Propria parere: Folositor.
Tutorialul:
Valorile majorităţii variabilelor dintr-un script dispar atunci când fereastra navigatorului este închisă. Spre deosebire de acestea, valorile variabilelor cookie se pot păstra un timp indefinit. Pentru ca valorile lor să se poată păstra, browserul utilizatorului stochează variabilele cookie în unitatea de hard-disc a utilizatorului.
Astfel, cookie-urile sunt fişiere care conţin diferite date despre un anumit site vizitat şi valori de variabile, salvate pe calculatorul vizitatorului.
În această lecţie veţi învăţa cum puteţi folosi JavaScript pentru a manipula fişiere cookie.
1. Fişierele cookie.
Un cookie constă în principal dintr-o pereche nume=valoare, iar caracteristici mai avansate permit stabilirea unei date de expirare şi pot preciza ce pagini web văd informaţia cookie.
Unul dintre avantajele folosirii fişierelor cookie este persistenţa acestora. Un fişier cookie poate persista luni de zile (sau ani), simplificând vizitele ulterioare ale utilizatorului pe site, deoarece informaţiile referitoare la vizite şi preferinţele utilizatorului sunt salvate şi preluate din cookie de fiecare dată când va reveni la site.
Fişierele cookie sunt deosebit de utile când sunt folosite cu JavaScript, deoarece JavaScript are funcţii pentru citirea, adăugarea şi editarea fişierelor cookie.
Fişierele cookie au şi unele dezavantaje, fiind stocate pe calculatorul utilizatorului acestea pot fi şterse din greşeală (sau intenţionat).
Browserul impune restricţii privind dimensiunea şi numărul de fişiere cookie care pot fi stocate, iar fişierele cookie mai noi le pot suprascrie pe cele vechi.
- Numărul total de cookie-uri pentru un server sau domeniu este de 200
- Numărul total de fişiere cookie pentru un browser este de 300
- Mărimea maximă a unui fişier cookie este 4 kb. Dacă aceste limite sunt depăşite, browserul va şterge cele mai vechi cookie-uri şi pe cele nefolosite.
Când un utilizator trece de la un browser la altul, fişierele cookie salvate de un browser nu sunt recunoscute de celălalt.
Dacă mai mulţi utilizatori folosesc acelaşi calculator şi acelaşi browser ei pot folosi fişiere cookie care aparţin altcuiva.
Cele mai multe browsere stochează informaţiile cookie în fişiere text necriptate, de aceea informaţiile private precum parole, numere personale, nu trebuie stocate direct într-un cookie.
Utilizatorul poate configura browserul astfel încât să interzică anexarea de cookie, în acest caz aplicaţia care foloseşte cookie ar putea să nu funcţioneze.
2. Stocarea şi regăsirea valorilor unui cookie.
Numele şi valorile dintr-un cookie sunt stocate şi stabilite utilizând proprietatea cookie a obiectului Document.
Pentru a stoca şirul cookie într-o variabilă se foloseşte o comandă precum aceasta:
var myCookie = document.cookie
Pentru a afişa într-o pagina web şirul astfel stocat , puteţi folosi comanda:
document.write(document.cookie)
JavaScript stochează fişierele cookie în formatul următor:
nume1=valoare1; nume2=valoare2; nume3=valoare3
Unde "nume1", "nume2" şi "nume3" reprezintă numele fiecărui cookie, iar "valoare1", "valoare2" şi "valoare3" reprezintă valorile care vor fi adăugate şi stocate în fiecare cookie.
Perechile nume=valoare sunt separate prin caracterul punct şi virgulă (
şi un spaţiu, iar după ultima pereche nu se mai pune caracterul punct şi virgulă.
Pentru extragerea şi utilizarea valorilor din fişierele cookie, trebuie să prelucraţi şirul obţinut prin comanda "document.cookie".
Pentru a simplifica regăsirea unei valori dintr-un fişier cookie, puteţi folosi o funcţie ca cea din următorul script:
- Funcţia "GetCookie(name)" prelucrează şirul obţinut de comanda "document.cookie" şi verifică dacă există cookie-ul cu numele transmis ca argument funcţiei. Dacă cookie-ul cu numele respectiv există, atribuie variabilei "result" valoarea asociată numelui şi funcţia va returna această valoare. Dacă numele nu există, valoarea variabilei "result" returnată de funcţie, rămâne "null".
- Variabila "valoare_c" apelează funcţia "GetCookie()", unde 'nume_cookie' dintre paranteze, este numele cookie-ului a cărui valoare doriţi să o obţineţi.
Prin comanda "document.write(valoare_c)" scriptul va afişa valoarea acestei variabile, care este cea returnată de funcţie.
3. Stabilirea valorilor unui cookie
Combinaţia nume=valoare este informaţia minimă de care aveţi nevoie pentru a defini un cookie, dar un cookie bine definit înseamnă mai mult de atât.
Iată o listă de parametrii ce pot fi utilizaţi pentru a specifica un cookie:
nume=valoare
expires=date
path=path
domain=nume_domeniu
secure
a. Nume şi valoare.
Nume şi valoare pot fi orice cuvinte doriţi.
Exemplu:
culoare favorita=blue
id=num:1
Cea mai simplă funcţie pentru stabilirea unui cookie poate arăta astfel:
function SetareCookie(name, value) {
document.cookie = name + "+" + escape(value);
}
Pentru siguranţă, valoarea este codificată folosind funcţia "escape()". Dacă în şir ar exista un caracter ";" ar putea fi o problemă, dar această funcţie elimină această problemă.
În general operatorul = este de atribuire, dar în cazul cookie-urilor fiecare nou "name" pe care îl atribuiţi este adăugat la lista de cookie activă, iar dacă adăugaţi acelaşi nume se va rescrie peste cel vechi.
b. Data de expirare.
Parametrul "expires=data" reprezintă data şi timpul (în formatul Wdy, DD-Mon-YYYY HH:MM:SS GMT) când cookie-ul va expira şi va fi şters de pe hard-disc.
Perioada de expirare trebuie transformată în milisecunde.
Dacă nu este specificat nici un timp de expirare, cookie-ul va dispare la închiderea navigatorului.
Iată un exemplu în care data de expirare este după o săptămână:
Observaţi că data de expirare (dateExp) este prelucrată pentru a se încheia cu şirul GMT.
c. Path.
În mod implicit fişierele cookie sunt disponibile şi pentru alte pagini web din acelaşi director al paginii la care au fost create.
Parametrul path permite unui cookie să fie folosit şi de pagini din alte directoare ale aceluiaşi domeniu.
Dacă valoarea parametrului "path" este un subşir al adresei URL a unei pagini, fişierele cookie create cu acel parametru "path" sunt disponibile pentru respectiva pagină.
De exemplu, puteţi crea un cookie folosind următoarea comandă:
document.cookie = "nume=valoare; path=/nume_director";
Aceasta face ca fişierul cookie cu numele "nume" să fie disponibil pentru fiecare pagină din directorul "nume_director" cât şi pentru subdirectoarele acestuia.
Dacă aţi avea următoarea comandă:
document.cookie = "culoare=blue; path=/javascript/test";
Fişierul cookie "culoare" ar fi disponibil pentru toate fişierele din directorul "javascript/test" şi subdirectoare ale acestuia, dar nu va fi disponibil pt. fişierele din directorul "/javascript".
Calea generală pentru ca fişierul cookie să poată fi folosit de toate paginile unui domeniu, din toate directoarele, este calea rădăcină "/" (path=/).
d. Domain.
Aşa cum parametrul "path" face un cookie disponibil şi în alte directoare, parametrul domain îl face disponibil pentru alte servere Web sau subdomenii ale aceluiaşi site.
Folosirea parametrului "domain" impune folosirea a cel puţin două caractere punct (.) dacă domeniul dvs se încheie cu .com, .net ... (de ex. .marplo.net) Şirul parametrului "domain" trebuie să fie identic cu sfârşitul numelui de domeniu al serverului dvs.
Atunci când se caută un cookie în lista de cookie-uri se efectuează şi o comparaţie între valoarea acestui atribut şi adresa domeniului din care s-a recepţionat antetul HTTP. Comparaţia se realizează pornind de la sufixul valorilor comparate, în sensul că dacă avem "domain=marplo.net atunci această valoare se va potrivi cu un nume de gazdă precum "info.marplo.net".
După ce s-a efectuat această comparaţie, în cazul în care cookie-ul este validat se va verifica şi valoarea atributului "path".
e. Secure.
Dacă un cookie este marcat ca secure, prin intermediul acestui atribut, va fi transmis numai dacă tranzacţia HTTP este una sigură (folosindu-se protocolul HTTPS).
În felul acesta un cookie este transmis doar dacă întruneşte toate condiţiile de validitate (se potrivesc domeniul, calea de directoare, timpul de expirare şi securitatea canalului de comunicaţie).
Dacă parametrul "secure" nu este adăugat în comanda de creare a fişierului cookie, acesta va fi trimis într-o formă necriptată prin reţea.
În următorul exemplu este prezentată o funcţie care defineşte fişierele cookie cu toţi parametri:
Observaţi folosirea operatorului condiţional ?
Pentru a folosi această funcţie, o apelaţi cu orice parametri doriţi să stabiliţi şi utilizaţi cuvântul "null" în locul parametrilor care nu contează.
- În lecţia următoare veţi găsi explicată metoda de ştergere a cookie-urilor şi un exemplu complet de creare şi utilizare cookie.
Descriere: Cookie-uri part. 1
Download: -
Autor: Anonim
Sursa (Link-ul oficial): -
Propria parere: Folositor.
Tutorialul:
Valorile majorităţii variabilelor dintr-un script dispar atunci când fereastra navigatorului este închisă. Spre deosebire de acestea, valorile variabilelor cookie se pot păstra un timp indefinit. Pentru ca valorile lor să se poată păstra, browserul utilizatorului stochează variabilele cookie în unitatea de hard-disc a utilizatorului.
Astfel, cookie-urile sunt fişiere care conţin diferite date despre un anumit site vizitat şi valori de variabile, salvate pe calculatorul vizitatorului.
În această lecţie veţi învăţa cum puteţi folosi JavaScript pentru a manipula fişiere cookie.
1. Fişierele cookie.
Un cookie constă în principal dintr-o pereche nume=valoare, iar caracteristici mai avansate permit stabilirea unei date de expirare şi pot preciza ce pagini web văd informaţia cookie.
Unul dintre avantajele folosirii fişierelor cookie este persistenţa acestora. Un fişier cookie poate persista luni de zile (sau ani), simplificând vizitele ulterioare ale utilizatorului pe site, deoarece informaţiile referitoare la vizite şi preferinţele utilizatorului sunt salvate şi preluate din cookie de fiecare dată când va reveni la site.
Fişierele cookie sunt deosebit de utile când sunt folosite cu JavaScript, deoarece JavaScript are funcţii pentru citirea, adăugarea şi editarea fişierelor cookie.
Fişierele cookie au şi unele dezavantaje, fiind stocate pe calculatorul utilizatorului acestea pot fi şterse din greşeală (sau intenţionat).
Browserul impune restricţii privind dimensiunea şi numărul de fişiere cookie care pot fi stocate, iar fişierele cookie mai noi le pot suprascrie pe cele vechi.
- Numărul total de cookie-uri pentru un server sau domeniu este de 200
- Numărul total de fişiere cookie pentru un browser este de 300
- Mărimea maximă a unui fişier cookie este 4 kb. Dacă aceste limite sunt depăşite, browserul va şterge cele mai vechi cookie-uri şi pe cele nefolosite.
Când un utilizator trece de la un browser la altul, fişierele cookie salvate de un browser nu sunt recunoscute de celălalt.
Dacă mai mulţi utilizatori folosesc acelaşi calculator şi acelaşi browser ei pot folosi fişiere cookie care aparţin altcuiva.
Cele mai multe browsere stochează informaţiile cookie în fişiere text necriptate, de aceea informaţiile private precum parole, numere personale, nu trebuie stocate direct într-un cookie.
Utilizatorul poate configura browserul astfel încât să interzică anexarea de cookie, în acest caz aplicaţia care foloseşte cookie ar putea să nu funcţioneze.
2. Stocarea şi regăsirea valorilor unui cookie.
Numele şi valorile dintr-un cookie sunt stocate şi stabilite utilizând proprietatea cookie a obiectului Document.
Pentru a stoca şirul cookie într-o variabilă se foloseşte o comandă precum aceasta:
var myCookie = document.cookie
Pentru a afişa într-o pagina web şirul astfel stocat , puteţi folosi comanda:
document.write(document.cookie)
JavaScript stochează fişierele cookie în formatul următor:
nume1=valoare1; nume2=valoare2; nume3=valoare3
Unde "nume1", "nume2" şi "nume3" reprezintă numele fiecărui cookie, iar "valoare1", "valoare2" şi "valoare3" reprezintă valorile care vor fi adăugate şi stocate în fiecare cookie.
Perechile nume=valoare sunt separate prin caracterul punct şi virgulă (

Pentru extragerea şi utilizarea valorilor din fişierele cookie, trebuie să prelucraţi şirul obţinut prin comanda "document.cookie".
Pentru a simplifica regăsirea unei valori dintr-un fişier cookie, puteţi folosi o funcţie ca cea din următorul script:
Code:
<script type="text/javascript" language="javascript">
function GetCookie(name) {
var result = null;
var myCookie = " " + document.cookie + ";"; // toate sirurile de cookie incep cu spatiu si se incheie cu ;
var searchName = " " + name + "="; // se cauta tot ce e intre name si = urmator
var startOfCookie = myCookie.indexOf(searchName);
var endOfCookie;
if (startOfCookie != -1) { // daca gaseste ceva intre ele
startOfCookie += searchName.length; // omite nume cookie anterior
endOfCookie = myCookie.indexOf(";", startOfCookie);
result = unescape(myCookie.substring(startOfCookie, endOfCookie));
}
return result;
}
var valoare_c = GetCookie('nume_cookie');
document.write(valoare_c); // Afiseaza valoarea cookie-ului cautat, sau cuvantul null
</script>
- Funcţia "GetCookie(name)" prelucrează şirul obţinut de comanda "document.cookie" şi verifică dacă există cookie-ul cu numele transmis ca argument funcţiei. Dacă cookie-ul cu numele respectiv există, atribuie variabilei "result" valoarea asociată numelui şi funcţia va returna această valoare. Dacă numele nu există, valoarea variabilei "result" returnată de funcţie, rămâne "null".
- Variabila "valoare_c" apelează funcţia "GetCookie()", unde 'nume_cookie' dintre paranteze, este numele cookie-ului a cărui valoare doriţi să o obţineţi.
Prin comanda "document.write(valoare_c)" scriptul va afişa valoarea acestei variabile, care este cea returnată de funcţie.
3. Stabilirea valorilor unui cookie
Combinaţia nume=valoare este informaţia minimă de care aveţi nevoie pentru a defini un cookie, dar un cookie bine definit înseamnă mai mult de atât.
Iată o listă de parametrii ce pot fi utilizaţi pentru a specifica un cookie:
nume=valoare
expires=date
path=path
domain=nume_domeniu
secure
a. Nume şi valoare.
Nume şi valoare pot fi orice cuvinte doriţi.
Exemplu:
culoare favorita=blue
id=num:1
Cea mai simplă funcţie pentru stabilirea unui cookie poate arăta astfel:
function SetareCookie(name, value) {
document.cookie = name + "+" + escape(value);
}
Pentru siguranţă, valoarea este codificată folosind funcţia "escape()". Dacă în şir ar exista un caracter ";" ar putea fi o problemă, dar această funcţie elimină această problemă.
În general operatorul = este de atribuire, dar în cazul cookie-urilor fiecare nou "name" pe care îl atribuiţi este adăugat la lista de cookie activă, iar dacă adăugaţi acelaşi nume se va rescrie peste cel vechi.
b. Data de expirare.
Parametrul "expires=data" reprezintă data şi timpul (în formatul Wdy, DD-Mon-YYYY HH:MM:SS GMT) când cookie-ul va expira şi va fi şters de pe hard-disc.
Perioada de expirare trebuie transformată în milisecunde.
Dacă nu este specificat nici un timp de expirare, cookie-ul va dispare la închiderea navigatorului.
Iată un exemplu în care data de expirare este după o săptămână:
Code:
var name = "culoare"
var value = "blue"
var oneWeek = 7*24*60*60*1000 // Data de expirare se stabileste in milisecunde
var expDate = new Date()
expDate.setTime(expDate.getTime()+oneWeek);
document.cookie = name + "=" + escape(value) + "; expires=" + expDate.toGMTString()
Observaţi că data de expirare (dateExp) este prelucrată pentru a se încheia cu şirul GMT.
c. Path.
În mod implicit fişierele cookie sunt disponibile şi pentru alte pagini web din acelaşi director al paginii la care au fost create.
Parametrul path permite unui cookie să fie folosit şi de pagini din alte directoare ale aceluiaşi domeniu.
Dacă valoarea parametrului "path" este un subşir al adresei URL a unei pagini, fişierele cookie create cu acel parametru "path" sunt disponibile pentru respectiva pagină.
De exemplu, puteţi crea un cookie folosind următoarea comandă:
document.cookie = "nume=valoare; path=/nume_director";
Aceasta face ca fişierul cookie cu numele "nume" să fie disponibil pentru fiecare pagină din directorul "nume_director" cât şi pentru subdirectoarele acestuia.
Dacă aţi avea următoarea comandă:
document.cookie = "culoare=blue; path=/javascript/test";
Fişierul cookie "culoare" ar fi disponibil pentru toate fişierele din directorul "javascript/test" şi subdirectoare ale acestuia, dar nu va fi disponibil pt. fişierele din directorul "/javascript".
Calea generală pentru ca fişierul cookie să poată fi folosit de toate paginile unui domeniu, din toate directoarele, este calea rădăcină "/" (path=/).
d. Domain.
Aşa cum parametrul "path" face un cookie disponibil şi în alte directoare, parametrul domain îl face disponibil pentru alte servere Web sau subdomenii ale aceluiaşi site.
Folosirea parametrului "domain" impune folosirea a cel puţin două caractere punct (.) dacă domeniul dvs se încheie cu .com, .net ... (de ex. .marplo.net) Şirul parametrului "domain" trebuie să fie identic cu sfârşitul numelui de domeniu al serverului dvs.
Atunci când se caută un cookie în lista de cookie-uri se efectuează şi o comparaţie între valoarea acestui atribut şi adresa domeniului din care s-a recepţionat antetul HTTP. Comparaţia se realizează pornind de la sufixul valorilor comparate, în sensul că dacă avem "domain=marplo.net atunci această valoare se va potrivi cu un nume de gazdă precum "info.marplo.net".
După ce s-a efectuat această comparaţie, în cazul în care cookie-ul este validat se va verifica şi valoarea atributului "path".
e. Secure.
Dacă un cookie este marcat ca secure, prin intermediul acestui atribut, va fi transmis numai dacă tranzacţia HTTP este una sigură (folosindu-se protocolul HTTPS).
În felul acesta un cookie este transmis doar dacă întruneşte toate condiţiile de validitate (se potrivesc domeniul, calea de directoare, timpul de expirare şi securitatea canalului de comunicaţie).
Dacă parametrul "secure" nu este adăugat în comanda de creare a fişierului cookie, acesta va fi trimis într-o formă necriptată prin reţea.
În următorul exemplu este prezentată o funcţie care defineşte fişierele cookie cu toţi parametri:
Code:
function SetCookie (name, value, expires, path, domain, secure) {
var expString = ((expires == null) ? "" : ("; expires=" + expires.toGMTString()));
var pathString = ((path == null) ? "" : ("; path=" + path));
var domainString = ((domain == null) ? "" : ("; domain=" + domain));
var secureString = ((secure == true) ? "; secure" : "");
document.cookie = name + "=" + escape (value) + expString + pathString + domainString +secureString;
}
Observaţi folosirea operatorului condiţional ?
Pentru a folosi această funcţie, o apelaţi cu orice parametri doriţi să stabiliţi şi utilizaţi cuvântul "null" în locul parametrilor care nu contează.
- În lecţia următoare veţi găsi explicată metoda de ştergere a cookie-urilor şi un exemplu complet de creare şi utilizare cookie.