În mod normal, o variabilă locală declarată într-o pagină php este valabilă doar în acea pagină, dacă nu intervenim într-un fel pentru a o transfera şi pe alte pagini unde avem nevoie de ea.
Modalităţile de păstrare a informaţiilor pe tot parcursul aplicaţiei sunt:
• variabile globale
• sesiuni
• cookies
• transferul variabilelor locale prin forme sau în header-ul unei alte pagini
Ce este o sesiune?
O sesiune reprezintă una din căile de a păstra datele de lucru ale unei aplicaţii atunci când se face transferul de la o pagină la alta.
PHP foloseşte în mod nativ sesiuni, aşa cum fac şi limbajele ASP şi ColdFusion. Lucrul cu sesiuni nu este complicat. Fiecare sesiune trebuie declarată la începutul paginii, cu ajutorul funcţiei: session_start(); Această funcţie face ca PHP să înregistreze un identificator unic al sesiunii (ID), iar acel identificator este trimis utilizatorului printr-un cookie. Totodată, pe server se crează un fişier care va reţine valorile variabilelor folosite în această sesiune. Fişierul are numele la fel cu identificatorul ID al sesiunii.
Apoi trebuie declarată variabila (sau variabilele) cu care lucrăm în cadrul acestei sesiuni. Pot fi create oricâte variabile.
session_register(‘sesiunea_mea’);
Variabila $sesiunea_mea poate fi o variabilă simplă sau un tablou (array). Variabilele definite în acest mod pot fi folosite pe toate paginile unei aplicaţii, definite pe un domeniu dat, atât timp cât cookie alocat acelei sesiuni este activ (nu expiră). Folosirea sesiunilor este o cale mult mai uşoară de lucru decât să transferăm variabilele de la pagină la pagină.
Exista posibilitatea ca un utilizator să nu accepte setarea de cookies pe computerul său. În acest caz, pentru identificarea unei sesiuni se poate folosi identificatorul acesteia. Putem adăuga acest identificator în stringul care apelează o pagină:
<a href=”pagina_mea.php?<?=SID?>”>Click către pagina mea</a>
$variabila_mea va putea fi folosită apoi pe toate paginile aplicaţiei respective.
Observaţie importantă: variabilele definite în sesiuni pot fi folosite într-o pagină doar după ce a fost executată comada session_start(); Această comanda îi spune PHP-ului să verifice dacă există o sesiune şi atunci să folosească variabilele acelei sesiuni ca variabile globale.
Funcţiile session_start(), ca şi setcookie() trebuie folosite întotdeauna chiar la începutul fişierului. Dacă se trimite altceva către browser înainte de folosirea lor atunci vor exista erori la folosirea sesiunii sau a cookie-urilor.