Fun Zone = Distractie 100 %
Doriti să reactionati la acest mesaj? Creati un cont în câteva clickuri sau conectati-vă pentru a continua.

Invata PHP Lectia 10

In jos

Invata PHP Lectia 10 Empty Invata PHP Lectia 10

Mesaj  IoanaPisy27 Mar Iul 22, 2008 10:50 am

10.Utilizarea variabilelor cookie

Scopuri

• învățați care este modul de funcționare a variabilelor cookie

• învățați să creați, să obțineți accesul la variabilele cookie și să le ștergeți

• învățați să stocați mai multe valori într-o variabilă cookie

• învățați să specificați opțiunile dintr-o variabilă cookie



Acest modul vă prezintă noțiunile introductive referitoare la variabilele de date cookie, o caracteristică HTTP care vă permite să stocați date în sistemul unui utili­zator. Variabilele cookie sunt utile pentru stocarea preferințelor utilizatorilor și a altor informații care trebuie reținute atunci când utilizatorul trece la o nouă pagină Web.



Accesul la variabilele cookie și crearea acestora



Valorile majorității variabilelor dispar atunci când scriptul PHP care le conține își încheie execuția. 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 locală a utilizatorului.

Variabilele cookie sunt utile dintr-o mulțime de puncte de vedere. De exemplu, multe situri Web folosesc variabile cookie pentru a stoca identitatea utilizatorului și preferințele de vizualizare ale acestuia. Când utilizatorul revine la situl Web, variabi­lele cookie permit browserului să recunoască utilizatorul și să restaureze opțiunile sitului selectate de către utilizator.

Din păcate, variabilele cookie nu constituie soluția perfectă pentru un mediu de stocare pe termen lung și prezintă o serie de dezavantaje. De exemplu:

• Un utilizator poate dezactiva variabilele cookie prin stabilirea unei opțiuni a browserului

• în anumite situații, variabilele cookie pot fi vizualizate de alți utilizatori decât utilizatorul ale cărui date le stochează

• Un site poate stoca numai 20 de variabile cookie și numai 4KB de informații în unitatea de hard-disc locală a utilizatorului

• Numeroase versiuni ale browserelor frecvent folosite au erori care le împiedică să folosească variabilele cookie în mod adecvat

În ciuda acestor dezavantaje, variabilele cookie rămân cea mai populară tehnică pentru obținerea unui mediu de stocare pe termen lung. Deci, este important să înțelegeți care este modul de funcționare și de utilizare a acestora.



Accesul la o variabilă cookie



Poate că trăsătura cea mai caracteristică a variabilelor cookie o constituie comoditatea. Dacă ați creat o variabilă cookie, valoarea acesteia este automat pusă la dispoziție ca variabilă PHP având același nume cu acela al variabilei cookie. De exemplu, să presupunem că ați creat o variabilă cookie denumită fruct și că îi atribuiți valoarea banana. Această pereche nume-valoare este apoi pusă la dispoziția fiecărui script PHP asociat sitului dumneavoastră de Web. Deci puteți afișa valoare variabilei cookie folosind următoarea instrucțiune:



Echo „Valoarea variabilei cookie este $fruct.”;

Această instrucțiune are ca efect afișarea următorului rezultat:



Valoarea variabilei cookie este banana.



Variabila PHP de tip tablou asociativ HTTP_COOKIE_VARS conține numele și valoarea fiecărei variabile cookie curentă. Dacă doriți să vizualizați fiecare variabilă cookie disponibilă și valoarea acesteia, puteți invoca funcția phpinfo(), care afișează valoarea tabloului HTTP_COOKIE_VARS. Dacă doriți să obțineți acces la tablou prin metode programatice, puteți folosi un program ca următorul:



Foreach($HTTP_COOKIE_VARS as $nume => $valoare)

Echo „
$nume => $valoare”;





Crearea unei variabile cookie



Crearea unei variabile cookie este aproape la fel de simplă ca și obținerea accesu­lui la aceasta. Pentru a crea o variabilă cookie, invocați funcția setcookie(), care are următoarea formă:



setcookie(nume, valoare, expirare)



Argumentul nume specifică numele variabilei cookie, iar argumentul valoare specifică valoarea variabilei. Argumentul expirare indică momentul expirării varia­bilei cookie; după ora specificată, variabila cookie nu mai este accesibilă.

În general, este convenabil să se specifice momentul expirării folosind funcția time(), care returnează intervalul de timp (exprimat în secunde) scurs de la 1 ianua­rie 1970. Puteți adăuga o valoare de tip decalaj (offset), care specifică intervalul de timp pe durata căruia variabila cookie trebuie să fie accesibilă. De exemplu, să luăm în considerare următoarea instrucțiune:



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



Această instrucțiune creează o variabilă cookie denumită fruct, care are valoarea banana. Variabila cookie va fi disponibilă timp de o oră (3600 secunde) de la crearea sa.

Dacă preferați, puteți specifica momentul expirării folosind funcția mktime (). Această funcție are următoarea formă:



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



De exemplu, următoarea instrucțiune creează o variabilă cookie care expiră la o secundă după miezul nopții primei zile a anului 2005:



Setcookie(„fruct”, „banana”, mktime(0, 0, 1, 1, 1, 2005));





Valorile variabilelor cookie sunt trimise de către browser ca parte a antetelor HTTP. Ca atare, valorile variabilelor cookie trebuie să fie stabilite anterior expedierii oricăror altor valori către browser. Trimiterea fie și a unui singur spațiu vă poate împiedica să configurați valoarea unei variabile cookie. Pentru a evita problemele, asigurați-vă că un script PHP care stabilește o valoare a unei variabile cookie este plasat în partea superioară a fișierului, fără caractere de tip spațiu alb care să-l preceadă. De asemenea, stabiliți valoarea variabilei cookie înainte de a executa o instrucțiune echo sau o altă instrucțiune PHP care trimite browserului date de ieșire.



Întrebare: Ce este un antet HTTP?

Răspuns: înainte de a trimite date HTML unui browser, un server Web trimite, în general, unul sau mai multe antete HTTP; aceste antete sunt cunoscute sub numele de antete de răspuns al serverului. Similar, înainte de a trimite informații unui server Web, un browser Web trimite, în general, unul sau mai multe antete HTTP; aceste antete sunt cunoscute sub numele de antete de cerere. Antetele de răspuns al serverului frecvent folosite descriu configurația serverului și furnizează informații referitoare la adresa URL solicitată de client. Antetele de cerere utilizate de obicei descriu configurația clientului și formatele de date acceptabile de către client.

În afară de antetele de răspuns al serverului și de antetele de cerere, protocolul HTTP folosește antete generale și antete de entitate. Antetele generale sunt folosite atât de către clienți, cât și de către servere, pentru a specifica informații precum data curentă și opțiunile de conexiune. Antetele de entitate descriu formatul datelor schimbate de un client și un server.





Ștergerea unei variabile cookie

Deoarece o variabilă cookie are o dată de expirare, aceasta va fi ștearsă automat la un oarecare interval de timp după crearea sa. Totuși, puteți șterge o variabilă cookie imediat. Pentru aceasta, fixați momentul expirării variabilei cookie la un moment de timp din trecut. De exemplu, pentru a șterge o variabilă cookie denumit fruct, puteți folosi următoarea instrucțiune:



Setcookie(„fruct”, „”, time()-3600);



Această instrucțiune stabilește timpul de expirare cu o oră (3600 de secunde) în urmă. Remarcați că valoarea variabilei cookie este exprimată sub forma unui șir vid; din moment ce variabila cookie nu va mai fi disponibilă, valoarea sa nu mai are importanță.







Tehnici avansate de utilizare a variabilelor cookie



Această secțiune prezintă unele tehnici mai avansate pentru lucrul cu variabile cookie. Prima sub-secțiune explică modul de stocare a mai mult de 20 de valori într-o singură variabilă cookie. Cea de-a doua sub-secțiune explică modul de utili­zare a mai multor argumente suplimentare ale funcției setcookie ().



Stocarea mai multor valori într-o variabilă cookie

Deoarece un sit Web poate stoca numai 20 de variabile cookie în sistemul unui utilizator, capacitatea de a stoca mai multe valori într-o singură variabilă cookie este utilă, în conformitate cu manualul PHP pe suport electronic, puteți realiza acest lucru prin specificarea unui tablou ca nume al variabilei cookie. De exemplu, puteți folosi un program ca acesta:



//Un exemplu eronat de variabila cookie cu mai multe valori

for ($i = 0; $i < 30; $i++)

{

setcookie(„cookies[$i]”, „$i”);

}



(isset($cookies))

{

foreach ($cookies as $i => $cookie)

{

echo „
$i => $cookie”;

}

}



Din păcate, acest procedeu nu funcționează. Contrar informațiilor din manualul PHP, fiecare element al tabloului este stocat într-o variabilă cookie separată. Astfel, prin utilizarea acestui procedeu nu puteți stoca mai mult de 20 de valori.

Pe de altă parte, stocarea mai multor valori într-o singură variabilă cookie este posibilă. Pentru aceasta, inserați valorile într-un tablou și folosiți funcția serialize() pentru a „împacheta" elementele tabloului într-un șir; ulterior, puteți recupera valoarea tabloului folosind funcția unserialize(). Iată un exemplu care prezintă modul de creare a unei variabile cookie care conține mai multe valori, precum și modul de acces la aceasta:



// Se creeaza un tablou

for ($i = 0; $i < 30; $i++)

{

$tablou[$i]=$i;

}



// Se impacheteaza intregul tablou intr-un sir

$s = serialize($tablou);



// Se creeaza o variabila cookie si se stabileste valoarea sa

setcookie(„cookies”,$s);



if(isset($cookies))

{

//Se despacheteaza valoarea variabilei cookie

$tablou = unserialize(stripslashes($cookies));



// Demonstreaza ca totul este in ordine,

// prin afisarea elementelor tabloului

foreach ($tablou as $i => $cookie)

{

echo „
$i => $cookie”;

}

}





Funcția stripslashes() este folosită pentru eliminarea secvențelor escape adăugate la șir atunci când valoarea variabilei cookie este returnată de PHP.





Deși acest procedeu reușește să ocolească limita celor 20 de variabile cookie, nu poate depăși limita celor 4KB de date stocate într-o variabilă cookie pentru fiecare sit Web în parte. Dacă doriți să stocați mai mult de 4KB de date, trebuie să stocați datele într-o bază de date pe parte de server sau într-un alt loc decât o variabilă cookie.



Specificarea accesului la o variabilă cookie și alte opțiuni

Funcția setcookie() poate prelua maximum șase argumente, inclusiv trei argumente despre care nu am discutat încă. Iată formatul complet al funcției setcookie():



setcookie(nume, valoare, expirare, cale, domeniu, sigur)



Argumentele nume, valoare și expirare au fost descrise în secțiunea precedentă a acestui modul.

Argumentul cale vă permite să specificați calea URL asociată variabilei cookie. În mod prestabilit, variabila cookie este disponibilă pentru scripturile din catalogul care conține scriptul în care a fost configurată variabila respectivă, precum și pentrul scripturile din sub-cataloagele aferente catalogului respectiv. În particular, scriptu­rilor din cataloagele părinte ale catalogului care conține scriptul nu li se permite accesul prestabilit la variabila cookie.

Pentru a pune variabila cookie la dispoziția scripturilor dintr-un anumit catalog din sub-cataloagele sale, specificați o valoare a argumentului cale. De exemplu, pentru a pune variabila cookie la dispoziția întregului arbore de cataloage, specificați " /" ca valoare a argumentului cale; pentru a face variabila cookie disponibilă în catalogul /-test și în sub-cataloagele sale, specificați "/-test/" ca valoare a argu­mentului cale.
IoanaPisy27
IoanaPisy27
Administrator
Administrator

feminin
Numarul mesajelor : 309
Varsta : 31
Localizare : Blaj
Respectarea regulilor : Invata PHP Lectia 10 111010
Warn :
Invata PHP Lectia 10 Left_bar_bleue1 / 1001 / 100Invata PHP Lectia 10 Right_bar_bleue

Puncte : 20
Reputatie : 4
Data de inscriere : 10/03/2008

https://fun-zone.forumtwilight.com

Sus In jos

Sus

- Subiecte similare

 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum