Sunteți pe pagina 1din 16

Variabile cookie.

Sesiuni
Lectia 17.
Programare WEB
Cookie
.Un cookieeste o informatie de forma nume=valoare
setata intr-un raspuns http (de catre serverul web), si
stocata de catre browserul web pe calculatorul
utilizatorului, pe harddisk, sub forma unui fisier de tip
text.

.De fiecare data cand utilizatorul web se intoarce la


pagina web pentru care a fost setat acel cookie,
browserul trimite inapoi catre server cookie-ul, de forma
nume=valoare, astfel incat in aplicatia web sa avem
acces la aceste informatii, anterior setate, despre
utilizator.
http-request-response3
Cookie
.HTTP lucreaza cu cookies prin headerul
Set-Cookieheader ce apare in
raspunsurile ce seteaza un cookie , si prin
headerul Cookieprin care se returneaza
cookie-ul in cererile http ulterioare.
Dezavantaje cookies
.Cookie-urile sunt foarte utile in programarea web si de multe ori fac
aplicatiile web mai usor de folosit. Putem sa le folosim in aplicatia
noastra atata timp cat intelegem faptul ca nu ne putem baza 100%
pe faptul ca sunt acceptate de browser-ul utilizatorului sau ca
utilizatorul nu le sterge inainte de data lor de expirare.

.Pentru ca, fiind pe harddisk-ul sau, si mai mult browser-ul avand


interfata pentru stergerea lor, utilizatorul poate sterge oricand
cookie-urile..
Setarea unei cookie din PHP
.Un cookie este setat din PHP cu ajutorul
functiei setcookie().

.Setarea unui cookie inseamna de fapt


trimiterea cookie-ului respectiv de catre
serverul web catre client, sau modificarea
unui cookie existent.
Functia setcookie()
.Pseudocod

bool setcookie ( string $name [, string $value [, int


$expire= 0 [, string $path [, string $domain [, bool $secure=
false [, bool $httponly= false ]]]]]] )
.Functia setcookie() returneaza TRUE daca a setat cookie-ul, sau
FALSE daca a fost trimit output anterior apelarii acestei functii, deci
functia va genera si un Warning, iar cookie-ul nu va fi trimis. Faptul
ca setcookie() returneaza TRUE nu e o garantie ca browser-ul
utilizatorului a acceptat acel cookie.
Functia setcookie().
Parametri principali:
.$name-numele cookie-ului; devine ulterior cheie a superglobalului $_COOKIE
.$value-informatia pastrata de cookie; valoarea cookie-ului
.$expire-momentul de expirare al cookie-ului, exprimat in Unix Timestamp (nr de
secunde de la 1 Ianuarie 1970). Adaugam numarul de secunde peste care vrem sa
expire cookie-ul la rezultatul functiei time() (nr de secunde pana in prezent).
Daca nu
specificam acest parametru, si implicit el va fi 0, cookie-ul expira la inchider
ea browser-
ului.
.$path-cale web, relativa la radacina site-ului. calea in care va fi valabil coo
kie-ul
respectiv, in cadrul domeniului $domain. De exemplu "/users/", cookie-ul va fi v
alabil
doar pentru www.exemplu.com/users/ si toate subfolderele de sub aceasta cale. "/
"
semnifica intreg domeniul
.$domain-subdomeniul in care este activ cookie-ul respectiv. Implicit va fi dome
niul
curent. Exemplu: ".users.example.com" , sau ".example.com".
Sesiunile in PHP
.O sesiune httpinseamna un grup de cereri http
ce sunt recunoscute in aplicatia web (pe
serverul web) ca apartinand aceluiasi vizitator in
cadrul unei vizite curente.

.O sesiune reprezinta o metoda de a stoca


informatii (sub forma de variabile) pentru a fi
folosite pe mai multe pagini.
Sesiunile in PHP
.Exista doua elemente principale in lucrul cu
sesiuni:

1. Id-ul de sesiune (session ID), ce este generat


de motorul PHP, sau poate fi generat de
programator, la inceputul deschiderii unei
sesiuni.
2. Continutul sesiunii (session data).
Sesiunile in PHP
.Continutul sesiunii reprezinta ca si in cazul cookie-urilor
informatie legata de utilizatorul respectiv dar de data
asta continutul de sesiune este stocat pe server, intr-
un fisier.

.La incheierea scriptului .php, se salveaza informatiile


sesiunii in fisierul respectiv, si la inceperea rularii unui
nou script .php interpretorul PHP citeste din fisierul
respectiv datele sesiunii curente (daca exista o sesiune
curenta si exista date pentru ea) si le incarca in variabila
superglobala $_SESSION.
Sesiunile in PHP
.Informatiile sunt tot perechi nume=valoare.

.Putem numi o astfel de pereche


nume=valoare o variabila de sesiune, desi
tehnic este un element in array-ul
$_SESSION.
Inceputul unei sesiuni
.Deschiderea unei sesiuni se realizeaza cu
functia session_start().

.Prototip

bool session_start ( void )


session_start()are de fapt doua
comportamente:
.Daca primeste un id valid de sesiune de la
client (prin url sau prin cookie), va continua
sesiunea respectiva. Deci id-ul de sesiune
ramane neschimbat.
.Daca nu primeste un id de sesiune de la client,
sau id-ul respectiv nu corespunde unei sesiuni
active pe server, va deschide o noua sesiune,
deci se genereaza un nou id.
Distrugerea sesiunii
.session_destroy()

S-ar putea să vă placă și