MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Sesiuni

Sesiunile reprezintă un set de variabile care sunt stocate pe server (sau parțial pe server și parțial în cookie-urile browserului) și care se referă doar la utilizatorul curent.

Într-o anumită măsură, sesiunile sunt o alternativă la cookie-uri în ceea ce privește stocarea datelor despre utilizator.

Pentru a începe o sesiune, este necesar să apelăm funcția session_start(). Aceasta trebuie apelată înainte de a trimite răspunsul către utilizator:

<?php session_start(); ?>

La inițierea unei sesiuni cu ajutorul funcției session_start(), dacă utilizatorul accesează site-ul pentru prima dată, PHP îi atribuie un identificator unic de sesiune. Acest identificator, prin intermediul unui cookie numit implicit "PHPSESSID", este stocat în browserul utilizatorului.

Cu ajutorul acestui identificator, utilizatorul este asociat cu datele sesiunii. Dacă sesiunea este deja stabilită pentru utilizator, această funcție prelungește sesiunea curentă în loc să stabilească una nouă.

Cu ajutorul unor funcții speciale putem obține identificatorul sesiunii:

session_start();
echo session_id(); // identificatorul sesiunii
echo session_name();  // numele - PHPSESSID

Aceeași valoare am putea-o obține accesând direct cookie-ul:

echo $_COOKIE["PHPSESSID"];

Pentru a salva sau a obține date în sesiune, trebuie să folosim array-ul asociativ global $_SESSION. Salvarea unei variabile în sesiune:

$_SESSION["nume_variabila"] = valoare;

Obținerea valorii salvate:

$variabila = $_SESSION["nume_variabila"];

Salvarea datelor în sesiune

Inițiem sesiunea și salvăm în ea valori:

<?php
session_start();
$_SESSION["name"] = "Sam";
$_SESSION["age"] = 41;
echo "Datele au fost salvate în sesiune";
?>

După inițierea sesiunii în browser, vom putea observa setarea unui cookie special numit implicit "PHPSESSID":

Obținerea datelor din sesiune

Acum obținem aceste valori și le afișăm pe pagină:

session_start();

if (isset($_SESSION["name"]) && isset($_SESSION["age"])) {
   $name = $_SESSION["name"];
   $age = $_SESSION["age"];
   echo "Name: $name <br> Age: $age";
}

Ștergerea datelor din sesiune

Sesiunea este distrusă la închiderea browserului, însă putem, de asemenea, să ștergem programatic fie anumite date, fie toate datele din sesiune.

Pentru a șterge o variabilă din sesiune, se folosește funcția unset():

session_start();
unset($_SESSION["age"]);    // șterge variabila "age" din sesiune

Ștergerea tuturor datelor din sesiune se poate face cu ajutorul funcției session_destroy():

session_start();
session_destroy();6
← Lecția anterioară Lecția următoare →