Introducció a les sessions
Definició de sessió
Les sessions són un mecanisme per desar dades de l’usuari al servidor. L’objectiu de les sessions és mantenir les mateixes dades entre les pàgines navegades. En el moment que es desa una informació a la sessió, totes les pàgines que iniciïn la sessió podran recuperar aquella informació i fer-la servir
Per treballar amb sessions es fa servir la variable global $_SESSION. La variable $_SESSION és una array, per tant es pot definir vectors (camps) amb valors (dades). Aquests camps poden ser valors únics o més arrays.
Sempre que en una pàgina web s’incloguin sessions, s’ha d’iniciar la sessió.
session_start();
Un exemple de model de dades d’una sessió és el següent:
$_SESSION['usuari'] = [
'nom' => 'Joan', 'cognom' => 'García', 'edat' => 28, 'ingredients' => [ 'Tomàquet', 'Llevat', 'Galeta' ]];
$_SESSION['data_hora'] = [
'data' => '12/1/2026', 'hora' => '15:04',];
Podem comprovar que la sessió té dos grans grups de dades: usuari i data_hora. Aquests “grups de dades” són vectors de la sessió, que a la vegada també son arrays amb més vectors
Crear objectes dins de les sessions
Per crear un objecte de la sessió ho fem de la mateixa manera que afegint un vector a una array normal, amb la diferència que especifiquem $_SESSION com array
$_SESSION[<nomObjecte>] = <valor>; $_SESSION['nom'] = $_POST['nom']; // “Nom”, tindrà el valor que s’ha enviat al formulari $_SESSION['nom'] = “Guillem”; echo $_SESSION['nom']; // Imprimirà “Guillem”
Recordem que l’objectiu de les sessions és mantenir les mateixes dades entre les pàgines navegades. En el moment que es desa una informació a la sessió, totes les pàgines que iniciïn la sessió podran recuperar aquella informació i fer-la servir.
Pàgina 1 session_start(); $_SESSION['nom'] = “Guillem”; echo $_SESSION['nom']; // Imprimirà “Guillem”
Pàgina 2 session_start(); echo $_SESSION['nom']; // Imprimirà “Guillem”
Pàgina 3 echo $_SESSION['nom']; // Donarà error, ja que no hem iniciat la sessió
Modificar les dades d'un objecte de la sessió
A l’hora de modificar les dades d’una sessió és exactament la mateixa gestió que amb una array normal
Eliminar un objecte de la sessió
En el moment que volem eliminar un objecte de la sessió, farem servir la funció unset()
unset($_SESSION[“nom”]);
Tancar la sessió
Per tancar per complet la sessió i eliminar totes les dades dins d’aquesta, realitzarem el següent procediment.
Primer esborrarem les dades de la sessió
$_SESSION = array();
Seguidament, destruirem la pròpia sessió
session_destroy();
Per últim, esborrarem la cookie PHPSESSID del navegador
setcookie(session_name(), '', time()-3600, '/');