[Tutorial JS] Cookie-uri part. 2
Scris: Vin Feb 07, 2014 2:23 pm
Nume Tutorial: Cookie-uri part. 2
Descriere: Cookie-uri part. 2
Download:
Autor: Anonim
Sursa (Link-ul oficial): Propria parere: Folositor.
Tutorialul:
1. Fişiere cookie cu acelaşi nume
Dacă un browser are mai multe fişiere cookie pentru un site şi au acelaşi nume, definite fiecare cu altă cale în parametrul "path", şi cu valori diferite, de exemplu dacă avem trei fişiere cookie cu numele "color", şirul cookie ar arăta astfel:
color=blue; color=green; color=white
În cazul acesta, pentru a număra valorile asociate unui nume cookie puteţi folosi următoarea funcţie:
Împreună cu această funcţie care numără câte valori asociate există, trebuie să aveţi şi o funcţie care să regăsească o anumită instanţă a unui cookie, cum este următoarea:
2. Ştergerea unui cookie
Pentru a şterge un cookie, numele şi calea (dacă a fost specificat parametrul "path") trebuie să fie acelaşi cu numele şi calea folosite la stabilirea fişierului cookie.
Ştergerea unui cookie se face prin stabilirea datei de expirare la un moment în trecut, ca în exemplul următor:
3. Exemplu complet de utilizare cookie
Pentru a înţelege mai bine cum puteţi crea şi folosi fişierele cookie, studiaţi exemplul următor.
Exemplul este ceva mai complex, cuprinde un script cu mai multe funcţii care conţin multe din elementele învăţate în lecţiile anterioare cât şi altele mai avansate, pentru lucrul cu şiruri.
Scopul acestui exemplu este de a înţelege cum funcţionează fişierele cookie, acesta conţine în secţiunea HEAD a unui document HTML un script JavaScript în care sunt definite 4 funcţii pentru lucrul cu fişiere cookie, iar în corpul paginii, BODY, este creat un tabel HTML cu 2 coloane, în prima este un formular pentru scrierea unor preferinţe care vor fi trimise la script pentru înregistrarea acestora în cookie, iar a doua coloană conţine un buton care activează afişarea preferinţelor din cookie şi un alt buton care şterge cookie-urile.
Codul complet este următorul:
- Funcţiile din script au fost definite pentru acest exemplu, pentru folosirea lor în alte scripturi necesită modificări.
- Apăsaţi întâi butonul din dreapta "Afişează Favorite", vor fi afişate mesaje de eroare, precum că nu aţi adăugat încă o preferinţă.
Completaţi în câmpurile din stânga preferinţele dv. apoi apăsaţi butonul "Favorite", acesta apelează funcţia "SetCookie()" care va prelua datele adăugate şi le va stoca în fişiere cookie care vor expira peste două zile de la crearea lor.
Daţi click pe butonul "Afişează Favorite", acesta apelează funcţia "getCookie()" căreia îi trimite ca argumente numele cookie-urilor a căror valoare va fi afişată, vor apare preferinţele scrise de dv., preluate din cookie.
Importanţa şi avantajul fişierelor cookie le veţi constata după aceasta.
Închideţi browser-ul, redeschideţi-l iar la această pagină şi apăsaţi butonul "Afişează Favorite". Observaţi că sunt afişate preferinţele dv. adăugate mai devreme. Mâine, dacă reveniţi la această pagină vor fi afişate aceleaşi preferinţe, fără să trebuiască să le mai scrieţi. Aceste date sunt păstrate 2 zile în fişiere cookie după care vor fi şterse automat.
Dacă vreţi să ştergeţi aceste cookie-uri mai devreme, apăsaţi butonul "Şerge cookie", acesta apelează funcţia "stergeCookie()" căreia îi trimite ca argumente numele cookie-urilor pe care să le şteargă.
Descriere: Cookie-uri part. 2
Download:
Autor: Anonim
Sursa (Link-ul oficial): Propria parere: Folositor.
Tutorialul:
1. Fişiere cookie cu acelaşi nume
Dacă un browser are mai multe fişiere cookie pentru un site şi au acelaşi nume, definite fiecare cu altă cale în parametrul "path", şi cu valori diferite, de exemplu dacă avem trei fişiere cookie cu numele "color", şirul cookie ar arăta astfel:
color=blue; color=green; color=white
În cazul acesta, pentru a număra valorile asociate unui nume cookie puteţi folosi următoarea funcţie:
Cod: Selectaţi tot
function GetCookieCount (name) {
var result = 0;
var myCookie = " " + document.cookie + ";";
var searchName = " " + name + "=";
var nameLength = searchName.length;
var startOfCookie = myCookie.indexOf(searchName);
while (startOfCookie != -1) {
result += 1;
startOfCookie = myCookie.indexOf(searchName, startOfCookie + nameLength);
}
return result;
} Cod: Selectaţi tot
function GetCookieNum (name, cookieNum) {
var result = null;
if (cookieNum >= 1) {
var myCookie = " " + document.cookie + ";";
var searchName = " " + name + "=";
var nameLength = searchName.length;
var startOfCookie = myCookie.indexOf(searchName);
var cntr = 0;
for (cntr = 1; cntr < cookieNum; cntr++) {
startOfCookie = myCookie.indexOf(searchName, startOfCookie + nameLength);
}
if (startOfCookie != -1) {
startOfCookie += nameLength; // omite nume cookie anterior
var endOfCookie = myCookie.indexOf(";", startOfCookie);
result = unescape(myCookie.substring(startOfCookie, endOfCookie));
}
}
return result;
} Pentru a şterge un cookie, numele şi calea (dacă a fost specificat parametrul "path") trebuie să fie acelaşi cu numele şi calea folosite la stabilirea fişierului cookie.
Ştergerea unui cookie se face prin stabilirea datei de expirare la un moment în trecut, ca în exemplul următor:
Cod: Selectaţi tot
function ClearCookie (name) {
var ThreeDays = 3*24*60*60*1000;
var expDate = new Date();
expDate.setTime (expDate.getTime() - ThreeDays);
document.cookie = name + "=ImOutOfHere; expires=" + expDate.toGMTString();
} Pentru a înţelege mai bine cum puteţi crea şi folosi fişierele cookie, studiaţi exemplul următor.
Exemplul este ceva mai complex, cuprinde un script cu mai multe funcţii care conţin multe din elementele învăţate în lecţiile anterioare cât şi altele mai avansate, pentru lucrul cu şiruri.
Scopul acestui exemplu este de a înţelege cum funcţionează fişierele cookie, acesta conţine în secţiunea HEAD a unui document HTML un script JavaScript în care sunt definite 4 funcţii pentru lucrul cu fişiere cookie, iar în corpul paginii, BODY, este creat un tabel HTML cu 2 coloane, în prima este un formular pentru scrierea unor preferinţe care vor fi trimise la script pentru înregistrarea acestora în cookie, iar a doua coloană conţine un buton care activează afişarea preferinţelor din cookie şi un alt buton care şterge cookie-urile.
Codul complet este următorul:
Cod: Selectaţi tot
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>Exemplu utilizare cookie</title>
<script type="text/javascript">
<!--
// Functia pt. setarea cookie-urilor
function SetCookie () {
// Se definesc variabilele care preiau valorile campurilor din formular
var culoare = document.preferinte.culoare.value;
var fructe = document.preferinte.fructe.value;
var citat = document.preferinte.citat.value;
// Seteaza timpul de expirare, 2 zile
var twoDays = 2*24*60*60*1000
var expDate = new Date()
expDate.setTime(expDate.getTime()+twoDays);
// Creaza cookie-urile
document.cookie = "cookie1" + "=" + escape(culoare) + "; expires=" + expDate.toGMTString() ;
document.cookie = "cookie2" + "=" + escape(fructe) + "; expires=" + expDate.toGMTString() ;
document.cookie = "cookie3" + "=" + escape(citat) + "; expires=" + expDate.toGMTString() ;
}
// Functia care verifica daca exista cookie-ul cu un anumit nume transmis ca argument
// Daca exista, prelucreaza sirul pt. extragerea valorii acestuia
// Returneaza valoarea asociata numelui
function checkCookie(c_name) {
if (document.cookie.length>0) {
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1) {
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) {
c_end=document.cookie.length;
}
return unescape(document.cookie.substring(c_start,c_end));
}
}
// Daca cookie-ul verificat nu exista
return "Nu ati adaugat inca o preferinta";
}
// Functia trimite valorile primite la apelare spre verificare la functia precedenta
// Daca numele cookie-ului exista, stocheaza valoarea intr-o matrice
// Afiseaza in pagina valorile cookie-urilor
function getCookie() {
nr = getCookie.arguments.length
var val_c = new Array(nr)
var a = 0
for (var i=0; i<nr; i++) {
valoare=checkCookie(getCookie.arguments[i]);
if (valoare!=null && valoare!="") {
val_c[a] = valoare;
a++
}
}
// Afiseaza in pagina, la id-urile indicate, valorile cookie-urilor
document.getElementById("idculoare").childNodes[0].nodeValue = val_c[0];
document.getElementById("idfructe").childNodes[0].nodeValue = val_c[1];
document.getElementById("idcitat").childNodes[0].nodeValue = val_c[2];
}
// Functia pt. stergerea cookie-urilor
function stergeCookie() {
nr_c = stergeCookie.arguments.length
var ThreeDays = 3*24*60*60*1000;
var expDate = new Date();
expDate.setTime (expDate.getTime() - ThreeDays);
for (var n=0; n<nr; n++) {
document.cookie = stergeCookie.arguments[n] + "=DataStearsa;
expires=" + expDate.toGMTString();
}
}
// -->
</script>
</head>
<body>
<table border="1" bordercolor="#8888fe" width="580" cellpadding="2" cellspacing="0">
<tr><td>
<form name="preferinte">
Scrieti culoarea favorita:
<input type="text" name="culoare" size="20" maxlength="40" /><br /><br />
Scrieti fructele preferate:
<input type="text" name="fructe" size="20" maxlength="40" /><br /><br />
Scrieti o fraza (un citat) favorita:<br />
<input type="text" name="citat" size="40" maxlength="80" /><br /><br />
<input type="button" value="Favorite" name="buton" onclick="SetCookie()" />
<input type="reset" value="Reset" name="reset" />
</form>
</td><td>
<form name="preferinte2">
<input type="button" value="Afiseaza Favorite" name="buton" onclick="getCookie('cookie1', 'cookie2', 'cookie3')" />
<input type="button" value="Sterge cookie" name="Clear" onclick="stergeCookie('cookie1', 'cookie2', 'cookie3')" />
</form>
<b>Culoare favorita - </b><span id="idculoare"> </span><br />
<b>Fructe preferate - </b><span id="idfructe"> </span><br />
<b>Citat favorit - </b><span id="idcitat"> </span><br />
</td></tr>
</table>
</body>
</html> - Apăsaţi întâi butonul din dreapta "Afişează Favorite", vor fi afişate mesaje de eroare, precum că nu aţi adăugat încă o preferinţă.
Completaţi în câmpurile din stânga preferinţele dv. apoi apăsaţi butonul "Favorite", acesta apelează funcţia "SetCookie()" care va prelua datele adăugate şi le va stoca în fişiere cookie care vor expira peste două zile de la crearea lor.
Daţi click pe butonul "Afişează Favorite", acesta apelează funcţia "getCookie()" căreia îi trimite ca argumente numele cookie-urilor a căror valoare va fi afişată, vor apare preferinţele scrise de dv., preluate din cookie.
Importanţa şi avantajul fişierelor cookie le veţi constata după aceasta.
Închideţi browser-ul, redeschideţi-l iar la această pagină şi apăsaţi butonul "Afişează Favorite". Observaţi că sunt afişate preferinţele dv. adăugate mai devreme. Mâine, dacă reveniţi la această pagină vor fi afişate aceleaşi preferinţe, fără să trebuiască să le mai scrieţi. Aceste date sunt păstrate 2 zile în fişiere cookie după care vor fi şterse automat.
Dacă vreţi să ştergeţi aceste cookie-uri mai devreme, apăsaţi butonul "Şerge cookie", acesta apelează funcţia "stergeCookie()" căreia îi trimite ca argumente numele cookie-urilor pe care să le şteargă.