Invata PHP cu punctsivirgula.ro

I. Introducere
II. Notiuni de baza
III. Notiuni avansate
IV. Aplicatii
V. Extra

Ce sunt Cookies?    1 ! 

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.

DOREL a spus COKIURI - 14.09.2010

NU MA DESCURC SA ACTIVEZ COKIURILE DIN BRAWSER SI NU POT TRIMITE O SESIZARE CATRE PRIMARIE VA ROG AJUTATIMA


Adauga un comentariu la aceasta sectiune.

 


Cum setez un cookie? Cum vad cookie-urile existente si cum le sterg?    1 ! 

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).

<?php
# crearea unui cookie de test care expira la sfarsitul sesiunii de lucru
setcookie("Test", 'acesta este un test');
 
# crearea unui cookie care expira intr-o ora
setcookie("Test2", 'o ora', time()+3600);
 
 
# vizualizarea cookie-urilor
if( isset( $_COOKIE[ 'Test' ] ) ) {
	echo 'Test: ', $_COOKIE[ 'Test' ], '<br>';
}
 
if( isset( $_COOKIE[ 'Test2' ] ) ) {
	echo 'Test2: ', $_COOKIE[ 'Test2' ], '<br>';
}
// 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
 
?>
stefan a spus mesaj - 20.11.2012

super....ma ajutat


Adauga un comentariu la aceasta sectiune.

 


Cum verific daca browser-ul utilizatorilor accepta cookie-uri?    0 ! 

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.

<?php
 
function testCookie() {
 
	# se foloseste variabila globala $_SERVER pentru a prelua numele
	# scripului curent (folosit la redirect)
	$paginaCurenta = $_SERVER[ 'PHP_SELF' ];
 
	# testez mai intai daca am creat cookie-ul
	if( empty( $_GET[ 'creat' ] ) ) {
		# este prima data cand accesez pagina
		#  adaug un cookie de test
		setcookie( 'ctest', 'verificare' );
 
		# fac redirect la aceasi pagina si adaug parametrul "creat"
		# pentru a putea semnala faptul ca s-a incercat deja crearea cookie-ului
		header( 'Location: ' . $paginaCurenta . '?creat=1' );
		exit;
	} else {
		# se va executa asta  atunci cand exista parametrul GET, deci dupa
		# redirect, cand cookie-ul a fost deja creat
		if( isset( $_COOKIE[ 'ctest' ] ) && !empty( $_COOKIE[ 'ctest' ] ) ) {
			return true;
		} else {
			return false;
		}
	}
 
}
 
if (testCookie()) print 'Browserul dvs. accepta cookie-uri';
else print 'Ne pare rau dar browserul dvs. nu accepta cookies';
 
?>

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

Nimic de afisat.


Adauga un comentariu la aceasta sectiune.

 


Cum creez un tracking cookie (un cookie care sa retina numarul de vizite pe pagina)?    3 ! 

<?php
 
# verific daca cookie-ul exista deja si preiau numarul de vizite stocat
$vizite = 0;
if( isset( $_COOKIE[ 'visits' ] ) ) {
	$vizite  = $_COOKIE[ 'visits' ];
}
 
# cresc numarul vizitelor cu o unitate
$vizite++;
 
# actualizez (sau setez) cookie-ul ce va retine nr de vizite
setcookie( 'visits', $vizite, time() * 2 ); // va expira peste mult timp
 
# afisez un mesaj corespunzator
if( $vizite == 1 ) {
	echo "Bun venit! Se pare ca nu ne-ai mai vizitat pana acum!";
} else {
	echo "Bine ai revenit. E a $vizite-a oara cand ne vizitezi.";
}
// Rezultat: Bun venit! Se pare ca nu ne-ai mai vizitat pana acum! 
?>
Alexandra a spus Intrebare - 20.01.2013

Nu inteleg de ce face setcookie dupa if. Imi explicati, va rog? Multumesc

Alexandru a spus Pentru Alexandra - 23.01.2013

In exemplul de mai sus mai intai se determina numarul de vizite anterioare (care poate fi 0 sau o alta valoare preluata tot din cookie); apoi se creste acel numar cu o unitate ($vizite++), dupa care, prin setcookie, se "salveaza" intr-un cookie de browser numarul actualizat.

Practic acel setcookie trimite catre browser o instructiune (un header) care are ca efect stocarea valorii lui $vizite in browser, iar acest lucru se intampla dupa ce este determinata valoarea corecta a variabilei $vizite.

Daniel a spus Ajutor - 02.04.2014

Am nevoie sa fac un tutorial despre $_COOKIE.Instructiunile sunt in limba engleza

Page format and structure:
-
Topic
(
i.e. JavaScript Function
)
-
Tutorial content
-
Description
-
Where and why to use
-
At least 3 examples
-
The content
and examples
must be
original (no copying)
-
All examples provided must wor


Adauga un comentariu la aceasta sectiune.