Cookies reprezinta portiuni de informatii (stocate sub forma de fisiere de mici dimensiuni) ce se afla pe calculatorul utilizatorului si care sunt create si folosite de catre browser in comunicarea cu serverul web. De obicei cookie-urile sunt folosite pentru a identifica utilizatorii sau a pastra urma vizitelor pe un site.
Cookie-urile pot fi sterse cu usurinta de catre utilizator, sau pot fi blocate de catre browser, deci folosirea lor trebuie facuta cu grija si doar in cazuri de necesitate. Un cookie poate contine o cantitate limitata de informatie iar durata de viata poate fi limitata (la un anumit numar de zile, la inchiderea sesiunii de lucru, etc) sau nelimitata (pana la stergerea lor).
PHP dispune de 2 functii prin care se pot crea cookie-uri: setcookie si setrawcookie. Cookie-urile create pe calculatorul utilizatorului pentru un site sunt transmise de catre browser inapoi la server si sunt disponibile in variabila globala $_COOKIE.
Cum setez un cookie? Cum vad cookie-urile existente si cum le sterg?
Adaugarea unui cookie pe calculatorul vizitatorului se realizeaza cu ajutorul functiei setcookie. Aceasta va trimite un header pe care browserul client il va interpreta si va crea cookie-ul. Fiind vorba de headere, se aplica regula de a nu printa nimic intainte de apelarea functiei setcookie. In cazul in care o instructiune de afisare a fost apelata inainte, cookie-ul nu va mai putea fi creat.
Pentru a vedea cookie-urile deja create in browser-ul vizitatorului se foloseste variabila predefinita $_COOKIE. Aceasta este un vector asociativ ce contine un element pentru fiecare cookie existent. Popularea acestuia se face in mod automat in functie de informatiile transmise de browser.
Nota: elemente de tip cookie se pot crea si la nivel de browser (folosind JavaScript sau un alt limbaj de client-side scripting). Acestea vor fi disponibile in variabila $_COOKIE la urmatorul request (efectuat, evident, dupa ce cookie-urile au fost create).
Cod: Selectaţi tot
'; } if( isset( $_COOKIE[ 'Test2' ] ) ) { echo 'Test2: ', $_COOKIE[ 'Test2' ], '
'; } // Rezultat (e nevoie de refresh prima data) // // # stergerea unui cookie se face printr-un truc: alegand o data de expirare din trecut setcookie("Test2", 'o ora', time()-3600); // timpul de expirare a trecut, deci cookie-ul // nu va mai fi valid si va fi sters de catre browser ?>
Ideea de baza este urmatoarea: se incearca sa se creeze un cookie, apoi se face un redirect la aceeasi pagina iar in urma redirectului (practic la a doua accesare a paginii) se verifica daca acel cookie a fost creat cu succes.
Redirect-ul se face folosind headere, deci va fi transparent pentru utilizator, care probabil nici nu va observa ca a fost redirectionat. Pentru a stii cand se face verificarea cookie-ului, se foloseste un parametru GET ce va avea valoarea 1 dupa redirect.
Puteti verifica acest exemplu mergand la pagina cookietest.php. Ca idee de testare, dezactivati cookie-urile din browser si accesati pagina. Apoi activati-le si face click din nou pe link (nu dati refresh la pagina deja deschisa intrucat are deja parametrul "creat=1" ceea ce va impiedica scriptul sa creeze cookie-ul din nou).
Descarcati fisierul cookietest.php si incercati-l pe serverul vostru