Sesiuni in PHP

0

In mod normal, o variabila locala declarata intr-o pagina .php este valabila doar in acea pagina, daca nu intervenim intr-un fel pentru a o transfera si pe alte pagini unde avem nevoie de ea.

Modalitatile de pastrare a informatiilor pe tot parcursul aplicatiei sunt:

–          variabile globale

–          sesiuni

–          cookies

–          transferul variabilelor locale prin forme sau in header-ul unei alte pagini

 

 

Ce este o sesiune?

 

O sesiune reprezinta una din caile de a pastra datele de lucru ale unei aplicatii atunci cand se face transferul de la o pagina la alta.

PHP foloseste in mod nativ sesiuni, asa cum fac si limbajele ASP si ColdFusion. Lucrul cu sesiuni nu este complicat.

Fiecare sesiune trebuie declarata la inceputul paginii, cu ajutorul functiei:

start_session();

Aceasta functie face ca PHP sa inregistreze un identificator unic al sesiunii (ID), iar acel identificator este trimis utilizatorului printr-un cookie. Totodata, pe server se creaza un fisier care va retine valorile variabilelor folosite in aceasta sesiune. Fisierul are numele la fel cu identificatorul ID al sesiunii.

 

Apoi trebuie declarata variabila (sau variabilele) cu care lucram in cadrul acestei sesiuni. Pot fi create oricate variabile.

session_register(‘sesiunea_mea’);

 

Variabila $sesiunea_mea poate fi o variabila simpla sau un tablou (array).

 

Exemplu:

$sesiunea_mea = “Alex”;     // variabila simpla

sau

$sesiunea_mea[“id”] = 1; // cazul unui array

$sesiunea_mea[“nume_utilizator”] = “Alex”;

$sesiunea_mea[“adresa”] = “Str.Lalelelor nr.5”; // etc.

 

Variabilele definite in acest mod pot fi folosite pe toate paginile unei aplicatii, definite pe un domeniu dat, atat timp cat cookie alocat acelei sesiuni este activ (nu expira). Folosirea sesiunilor este o cale mult mai usoara de lucru decat sa transferam variabilele de la pagina la pagina.

 

In php.ini pot fi setate diferite valori pentru parametri legati de sesiune cum ar fi (dupa semnul egal am pus valorile implicite) :

session.cookie_path = “/”;

session.cookie_domain = “”;

session.cookie_lifetime = “0”; // valoarea 0 inseamna ca cookie pentru sesiune e valabila pana cand browserul se va inchide.

 

session.name = “PHPSESSID”;

si altele .

 

Exista posibilitatea ca un utilizator sa nu accepte setarea de cookies pe computerul sau. In acest caz, pentru identificarea unei sesiuni se poate folosi identificatorul acesteia. Putem adauga acest identificator in stringul care apleaza o pagina:

 

<a href = “pagina_mea.php?<?=SID?”>Click catre pagina mea</a>

 

<?= este un mod mai scurt de a scrie comanda echo. <?= se poate folosi cu orice variabila, nu doar cu sesiuni.

 

Un identificator PHPSESSID arata ca o insirurire aleatoare de caractere alfanumerice:

PHPSESSID = 02993ab99sac988da9753330af72201

 

Daca PHP este compilat cu optiunea enable-trans-id, atunci identificatorul sesiunii este adaugat automat la fiecare pagina.

 

Iata un exemplu de definire al unei sesiuni:

 

<?

session_start();

session_register(“variabila_mea”);

$variabila_mea = “Aceasta este cursul online de PHP”;

?>

 

$variabila_mea va putea fi folosita apoi pe toate paginile aplicatiei respective.

 

Observatie importanta:

 

Variabilele definite in sesiuni pot fi folosite intr-o pagina doar dupa ce a fost executata comada session_start();

Aceasta comanda ii spune PHP-ului sa verifice daca exista o sesiune si atunci sa foloseasca variabilele acelei sesiuni ca variabile globale.

 

Functiile session_start(), ca si setcookie()  trebuie folosite intotdeauna chiar la inceputul fisierului. Daca se trimite altceva catre browser inainte de folosirea lor atunci vor exista erori la folosirea sesiunii sau a cookie-urilor.

Leave A Reply