Utilizarea variabilelor cookie

1. Accesul la variabilele cookie

Valorile majoritatii variabilelor dispar atunci când scriptul PHP care le contine îsi încheie executia. 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.
Majoritatea navigatoarelor de Web au posibilitatea sa activeze/dezactiveze cookie-urile. Trebuie sa tineti cont de acest lucru cand doriti sa folositi cookie in scripturile dv., totusi, comform statisticilor, in jur de 1% dintre utilizatori au optiunea cookie dezactivata.
PHP pune la dispozitia utilizatorilor functii pentru transmiterea cookie-urilor de la server la browser, si modalitati de citire a cookie-urilor.
Pentru a citi cooki-urile puteti utiliza variabila PHP de tip tablou $_COOKIE sau $_HTTP_COOKIE_VARS, acestea contin numele si valoarea fiecarei variabile cookie curenta. Daca doriti sa obtineti acces la acest tablou, puteti folosi un program ca urmatorul:

- $_COOKIE['numeCookie'] este o variabila super-globala, putand fi accesata si in functii fara a mai specifica "global".

2. Crearea unei variabile cookie

Un lucru important de retinut este faptul ca cookie-urile trebuie sa fie transmise la browser inaintea oricarei alte informatii.
Pentru a evita problemele, asigurati-va ca un script PHP care stabileste o valoare a unei variabile cookie este plasat în partea superioara a fisierului, fara caractere de tip spatiu alb care sa-l preceada. De asemenea, stabiliti valoarea variabilei cookie înainte de a executa o instructiune 'echo' sau o alta instructiune PHP care trimite browserului date de iesire.
Pentru a crea o variabila cookie, folositi functia setcookie(), care are urmatoarea forma:

- Argumentul 'numeCookie' specifica numele variabilei cookie, iar argumentul 'valoare' specifica valoarea variabilei.
- Valoarea variabilei cookie este automat transmisa "urlencode" si cand este primita e automat decodata.
- Argumentul 'expirare' indica momentul expirarii variabilei cookie; dupa ora specificata, variabila cookie nu mai este accesibila.
În general, este convenabil sa se specifice momentul expirarii folosind functia time(), care returneaza intervalul de timp (exprimat în secunde) scurs de la 1 ianuarie 1970. Puteti adauga o valoare de tip decalaj (offset), care specifica intervalul de timp pe durata caruia variabila cookie trebuie sa fie accesibila.
Folosind aceasta functie se pot transmite mai multe cookie-uri succesiv; protocoalele Web limiteaza insa la maximum 20 numarul cookie-urilor ce pot fi trimise aceluiasi utilizator.
De exemplu, sa luam în considerare urmatoarea instructiune: Aceasta instructiune creeaza o variabila cookie denumita 'fruct', care are valoarea 'banana'. Variabila cookie va fi disponibila timp de o ora (3600 secunde) de la crearea sa.
Daca preferati, puteti specifica momentul expirarii folosind functia mktime(). Aceasta functie are urmatoarea forma: De exemplu, urmatoarea instructiune creeaza o variabila cookie care expira la o secunda dupa miezul noptii primei zile a anului 2009:

3. Stergerea unei variabile cookie

Deoarece o variabila cookie are o data de expirare, aceasta va fi stearsa automat la un oarecare interval de timp dupa crearea sa. Totusi, puteti sterge o variabila cookie imediat. Pentru aceasta, fixati momentul expirarii variabilei cookie la un moment de timp in trecut.
De exemplu, pentru a sterge o variabila cookie denumita 'fruct', puteti folosi urmatoarea instructiune:

Aceasta instructiune stabileste timpul de expirare cu o ora (3600 de secunde) în urma.
Remarcati ca valoarea variabilei cookie este exprimata sub forma unui sir vid (""); din moment ce variabila cookie nu va mai fi disponibila, valoarea sa nu mai are importanta.

4. Specificarea accesului la o variabila cookie si alte optiuni

Functia setcookie() poate prelua maximum sase argumente.
Iata formatul complet al functiei setcookie():

Argumentele 'nume', 'valoare' si 'expirare' au fost descrise în sectiunea precedenta.
- Argumentul 'cale' va permite sa specificati calea URL asociata variabilei cookie. În mod prestabilit, variabila cookie este disponibila pentru scripturile din catalogul care contine scriptul în care a fost configurata variabila respectiva, precum si pentrul scripturile din sub-cataloagele aferente catalogului respectiv. În particular, scripturilor din cataloagele parinte ale catalogului care contine scriptul nu li se permite accesul prestabilit la variabila cookie.
Pentru a pune variabila cookie la dispozitia scripturilor dintr-un anumit catalog si cataloagele sale, specificati o valoare a argumentului 'cale'. De exemplu, pentru a pune variabila cookie la dispozitia întregului arbore de cataloage, specificati " /" ca valoare a argumentului cale; pentru a face variabila cookie disponibila în catalogul "/test" si în sub-cataloagele sale, specificati "/test/" ca valoare a argumentului 'cale'.
- Daca nu este specificat nici un argument 'domeniu', o variabila cookie este disponibila numai pentru scripturile din domeniul Web care a creat variabila respectiva. Argumentul 'domeniu' va permite sa specificati numele de domeniu asociat unei variabile cookie. În consecinta, variabila cookie va fi disponibila numai pentru siturile Web din cadrul domeniului specificat. De exemplu, sa presupunem ca un script din serverul Web http://www.subdomeniu.domeniu.com creeaza o variabila cookie. În mod prestabilit, variabila cookie este disponibila numai pentru gazda respectiva. Cu toate acestea, puteti face variabila cookie disponibila pe întreg domeniul 'subdomeniu.domeniu.com', specificând "subdomeniu.domeniu.com" ca valoare a argumentului 'domeniu'.
- Argumentul 'secure' este o valoare întreaga, care specifica daca variabila cookie trebuie trimisa prin intermediul unei conexiuni sigure (HTTPS). Specificati valoarea l pentru a împiedica transmiterea variabilei cookie în cazul în care conexiunea nu este sigura; pentru a permite transmiterea variabilei cookie prin conexiuni HTTP obisnuite, specificati valoarea 0.

Expresii regulate Regex <<-- Anterior --- Urmator -->> Lucru cu fisiere 1

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag e folosit pentru a adauga liste cu definitii in element <dl>?
<dt> <dd> <li>
<dl>
 <dt>HTML</dt>
  <dd> - Hyper Text Markup Language</dd>
  <dd> - Limbaj de cod pentru pagini web</dd>
</dl>
Care proprietate CSS poate sa ascunda un element in pagina, lasand spatiu gol in locul lui?
display position visibility
#id {
  visibility: hidden;
}
Indicati evenimentul declansat cand se apasa clic pe un obiect in pagina.
onclick onmouseover onfocus
document.getElementById("id").onclick = function(){
  alert("http://www.MarPlo.net/");
}
Indicati variabila PHP ce contine datele din $_GET, $_POST si $_COOKIE.
$_SESSION $_GET $_REQUEST
if(isset($_REQUEST["id"])) {
  echo $_REQUEST["id"];
}
Care din urmatoarele cuvinte reprezinta un Verb?
lighting believe path
I believe in my path.
- Eu cred in calea mea.
Care din urmatoarele cuvinte reprezinta un Verb?
creer camino iluminación
creer = a crede; camino = cale /drum; iluminación = iluminare
Utilizare variabile cookie - Tutorial PHP