Utilizarea variabilelor cookie 6

  • învatati care este modul de functionare a variabilelor cookie
  • învatati sa creati, sa obtineti accesul la variabilele cookie si sa le stergeti
  • învatati sa specificati optiunile dintr-o variabila 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:

  • Foreach($_COOKIE as $nume => $valoare)
    echo „<br /> $nume => $valoare”;

$_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 inclusive a unui tag HTML.
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:

  • setcookie(numeCookie, valoare, expirare)

– 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:

  • setcookie(„fruct”, „banana”, time()+3600);

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:

  • mktime(ore, minute, secunde, luna, zi, an)

De exemplu, urmatoarea instructiune creeaza o variabila cookie care expira la o secunda dupa miezul noptii primei zile a anului 2009:

  • Setcookie(„fruct”, „banana”, mktime(0, 0, 1, 1, 1, 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:

  • setcookie(„fruct”, „”, time()-3600);

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():

  • setcookie(nume, valoare, expirare, cale, domeniu, secure)

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.

Similar Posts

  • Functii pentru lucru cu functii

    Aici gasiti functii PHP ce pot fi folosite in lucrul cu functii create /definite in script. 1.   call_user_func(„func”, arg) – Apeleaza functia „func” dandu-i valoarea argumentului „arg”. Returneaza rezultatul functiei apelate, sau FALSE. <?phpfunction func($arg1, $arg2) {  return „$arg1 – $arg2”;} // Apeleaza func()echo call_user_func(„func”, ‘PHPCursWeb’, ‘net’);       // PHPCursWeb – net…

  • Functii PHP clase si obiecte

    Aici gasiti un set de functii PHP pentru lucrul cu clase si obiecte. 1.   class_alias(‘ClasaOriginala’, ‘Alias’) – Creaza in memorie o clasa cu numele dat la ‘Alias’, identica cu cea a carei nume e precizat la ‘ClasaOriginala’. <?php // Definire clasa AClas class AClas {   public $site = ‘www.PHPCursWeb.net’;       // Proprietate } //…

  • Functii PHP matematice

    Aici gasiti functii PHP matematice, in special pentru lucrul cu numere. 1.   abs(nr) – Returneaza valoarea absoluta (cu +) a lui „nr”. <?phpecho abs(-7.8);         // 7.8 (double /float)echo abs(3);         // 3 (integer)echo abs(-5);         // 5 (integer)?> 2.   base_convert(nr, baza1, baza2) –…

  • Functii pentru fisiere si directoare

    Aici gasiti cateva din cele mai utile functii PHP pentru lucru cu sistemul de fisiere si directoare. 1.   basename(adresa, „sufix”) – Returneaza partea cu numele fisierului dintr-o adresa URL. „sufix” e optional, daca e specificat, functia elimina si pe acesta de la sfarsitul numelui. <?php$url = ‘http://www.PHPCursWeb.net/php-mysql/index.php’;$file = basename($url);       // $file…

  • Functii pentru Array

    Aici gasiti cateva din cele mai utile functii PHP pentru Array (matrice). 1.   array_change_key_case(array, case) – Transforma cheile din primul parametru (array) in majuscule sau litere mici, dupa cum e specificat la „case” (CASE_UPPER sau CASE_LOWER). Default e CASE_LOWER. Daca „array” nu e o matrice, returneaza FALSE. <?php$aray = array(„FirSt”=>1, „SecOnd”=>8);print_r(array_change_key_case($aray, CASE_UPPER)); // Va…

  • PHP OOP – Clase si Obiecte, Metoda constructor 13

    OOP (Object Oriented Programming – Programare Orientata pe obiecte) este un concept (sau tehnica) de programare care trateaza datele si functiile ca obiecte. Important la acest concept este sa fie inteleasa bine diferenta dintre Clasa (Class) si Obiect (Object).Inainte de a trece la lucruri practice, iata cate ceva teoretic despre OOP. • Clasa este o…

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *