Cookie-uri - 1


Valorile majoritatii variabilelor dintr-un script dispar atunci cand fereastra navigatorului este inchisa. Spre deosebire de acestea, valorile variabilelor cookie se pot pastra un timp indefinit. Pentru ca valorile lor sa se poata pastra, browserul utilizatorului stocheaza variabilele cookie în unitatea de hard-disc a utilizatorului.
Astfel, cookie-urile sunt fisiere care contin diferite date despre un anumit site vizitat si valori de variabile, salvate pe calculatorul vizitatorului.
In aceasta lectie veti invata cum puteti folosi JavaScript pentru a manipula fisiere cookie.

1. Fisierele cookie

Un cookie consta in principal dintr-o pereche nume=valoare, iar caracteristici mai avansate permit stabilirea unei date de expirare si pot preciza ce pagini web vad informatia cookie.
Unul dintre avantajele folosirii fisierelor cookie este persistenta acestora. Un fisier cookie poate persista luni de zile (sau ani), simplificand vizitele ulterioare ale utilizatorului pe site, deoarece informatiile referitoare la vizite si preferintele utilizatorului sunt salvate si preluate din cookie de fiecare data cand va reveni la site.
Fisierele cookie sunt deosebit de utile cand sunt folosite cu JavaScript, deoarece JavaScript are functii pentru citirea, adaugarea si editarea fisierelor cookie.
Fisierele cookie au si unele dezavantaje, fiind stocate pe calculatorul utilizatorului acestea poat fi sterse din gresela (sau intentionat).
Browserul impune restrictii privind dimensiunea si numarul de fisiere cookie care pot fi stocate, iar fisierele cookie mai noi le pot suprascrie pe cele vechi.

Daca aceste limite sunt depasite, browserul va sterge cele mai vechi cookie-uri si nefolosite.
Cand un utilizator trece de la un browser la altul, fisierele cookie salvate de un browser nu sunt recunoscute de celalalt
Daca mai multi utilizatori folosesc acelasi calculator si acelasi browser ei pot folosi fisiere cookie care apartin altcuiva.
Cele mai multe browsere stocheaza informatiile cookie in fisiere text necriptate, de aceea informatiile private precum parole, numere personale nu trebuie stocate direct intr-un cookie.
Utilizatorul poate configura browserul astfel incat sa interzica anexarea de cookie, in acest caz aplicatia care foloseste cookie ar putea sa nu functioneze.

2. Stocarea si regasirea valorilor unui cookie

Numele si valorile dintr-un cookie sunt stocate si stabilite utilizand proprietatea cookie a obiectului Document.
Pentru a stoca sirul cookie intr-o variabila se foloseste o comanda precum aceasta:

Pentru a afisa intr-o pagina web sirul astfel stocat , puteti folosi comanda: JavaScript stocheaza fisierele cookie in formatul urmator: Unde "nume1", "nume2" si "nume3" reprezinta numele fiecarui cookie, iar "valoare1", "valoare2" si "valoare3" reprezinta valorile care vor fi adaugate si stocate in fiecare cookie.
Perechile nume=valoare sunt separate prin caracterul punct si virgula (;) si un spatiu, iar dupa ultima pereche nu se mai pune caracterul punct si virgula.
Pentru extragerea si utilizarea valorilor din fisierele cookie, trebuie sa prelucrati sirul obtinut prin comanda "document.cookie".
Pentru a simplifica regasirea unei valori dintr-un fisier cookie, puteti folosi o functie ca cea din urmatorul script:
<script type="text/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>
- Functia "GetCookie(name)" prelucreaza sirul obtinut de comanda "document.cookie" si verifica daca exista cookie-ul cu numele transmis ca argument functiei. Daca cookie-ul cu numele respectiv exista, atribuie variabilei "result" valoarea asociata numelui si functia va returna aceasta valoare. Daca numele nu exista, valoarea variabilei "result", si returnata de functie, ramane "null".
- Variabila "valoare_c" apeleaza functia "GetCookie()", unde 'nume_cookie' dintre paranteze, este numele cookie-ului a carui valoare doriti sa o obtineti.
Prin comanda "document.write(valoare_c)" scriptul va afisa valoarea acestei variabile, care este cea returnata de functie.

3. Stabilirea valorilor unui cookie

Combinatia nume=valoare este informatia minima de care aveti nevoie pentru a defini un cookie, dar un cookie bine definit inseamna mai mult de atat.
Iata o lista de parametrii ce pot fi utilizati pentru a specifica un cookie:

           a. Nume si valoare            b. Data de expirare            c. Path            d. Domain            e. Secure In urmaorul exemplu este prezentata o functie care defineste fisierele cookie cu toti parametri:
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;
}
Observati folosirea operatorului conditional ?
Pentru a folosi acesta functie, o apelati cu orice parametrii doriti sa stabiliti si utilizati cuvantul "null" in locul parametrilor care nu conteaza.

- In lectia urmatoare ("Lectia 27") veti gasi explicata metoda de stergere a cookie-urilor si un exemplu complet de creare si utilizare cookie.
Ferestre Frame <<-- Anterior --- Urmator -->> Cookie-uri 2

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag se foloseste pentru a crea o caseta de adaugare text?
<form> <input> <div>
<input type="text" name="a_name" value="val" />
Ce proprietate CSS se foloseste pentru a afisa textul cu majuscule-mici?
display font-variant font-style
h3 {
  font-variant: small-caps;
}
Ce instructiune afiseaza o fereastra cu un mesaj in ea?
for() Date() alert()
var msg = "Viziteaza CoursesWeb.net";
alert(msg);
Indicati codul PHP prin care se obtine IP-ul utilizatorului.
$_SERVER["HTTP_USER_AGENT"] $_SERVER["REMOTE_ADDR"] $_GET[]
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;
Cum se traduce cuvantul "actually"?
actual de fapt acum
He actually came on time.
- De fapt, el a venit la timp.
Cum se traduce expresia: "Hace buen tiempo"?
Face timp E vreme frumoasa Drum bun
Hoy hace buen tiempo.
- Astazi e vreme frumoasa.
Cookie-uri 1 - Tutoriale JavaScript