Sessions PHP
Sessions PHP

 

 

Utilitzarem sessions per emmagatzemar una sèrie de variables al servidor relacionant (gràcies a una variable passada per cookie o per URL) amb un usuari concret perquè estiguin disponibles en diferents pàgines del nostre lloc web. Un cop emmagatzemada una variable de sessió, podrem llegir- des de totes les pàgines de la nostra web mentre la sessió no es destrueixi.

Taula de contingut

 

 

 

 

Desar una variable

El suport per a sessions de PHP ens permet iniciar fàcilment una sessió utilitzant session_start i gràcies al vector superglobal $_SESSION, podrem treballar amb sessions com si de qualsevol altre vector es tractés:

000 <? Php
001 // Iniciem sessió  
002 session_start()  
003 // Guardem una variable   
004 $_SESSION[ 'nom' ] = 'Joan Mas'  
005 ?>


L'única cosa que cal tenir en compte, és que si fem servir cookies no podrem haver enviat ni un sol caràcter (ni tan sols un espai) al navegador abans del session_start, el següent exemple ens donarà error per l'espai de la línia 0:

000 <? Php
001 // Iniciem sessió  
002 session_start()  
003 ?>

 

 

 

 

Llegir una variable guardada

Si hem guardat una sessió, podrem accedir a les seves variables des de totes les pàgines PHP de la nostra web fent servir siguin visitades pel mateix usuari. Això ho farem simplement iniciant la sessió i amb el mateix vector $_SESSION, per veure si hi ha una variable de sessió determinada, usarem isset com amb qualsevol altra variable .:

000 <? Php
001 // iniciem sessió  
002 session_start()  
003 // Comprovem si hi ha la variable 
004 if(isset($_SESSION[ 'nom'])) {
005 // Si hi trobo  
006 $ _SESSION [ 'nom' ] ; }  else  {
007 // Si no hi és
008 echo 'desconegut' ; }
009 ?>

 

 

 

 

Esborrar una variable

Podem esborrar una variable de sessió usant la funció unset, però a més podem eliminar la sessió amb session_destroy :

000 <? Php
001 // Iniciem sessió  
002 session_start()  
003 // Esborrem la variable 
004 unset($_SESSION[ 'nom' ]) ; 
005 // Esborrem tota la sessió 
006 session_destroy() ; 
007 ?>