Le sessioni in Php
Il linguaggio php consente di passare informazioni da una pagina all'altra tramite le sessioni.
Cos'è una sessione? E' un modo alternativo al cookie per memorizzare informazioni. Mi consente di passare un dato da una pagina dinamica all'altra di un sito.
Come funziona una sessione
Quando l'utente naviga sulla pagina A, lo script php apre e scrive un'informazione sulla sessione.
Successivamente l'utente naviga sulla pagina B. Lo script php apre la sessione e legge l'informazione scritta in precedenza.
In questo modo l'informazione è passata dalla pagina A alla pagina B.
Qual è la differenza tra cookie e sessioni?
Il cookie memorizza i dati sul computer client dell'utente.
La sessione memorizza i dati sul server del sito.
Sono due modi alternativi per passare un'informazione da una pagina all'altra. Quello che cambia soltanto il mezzo ( client o server ).
Sia la sessione che il cookie hanno una durata prestabilita.
Cookie e server hanno pro e contro. I cookie usano il PC dell'utente per memorizzare le informazioni. Se l'utente ha disabilitato i cookie sul browser, la pagina non funziona. D'altra parte, le sessioni usano più risorse del server. Inoltre, le sessioni non sono lette dai motori di ricerca. Quindi, la pagina che utilizza le sessioni non è indicizzata sui search engine. Sono aspetti particolarmente importanti dal punto di vista seo.
Come inizializzare una sessione in php
Per usare la sessione in uno script php devo prima inizializzarla con l'istruzione session_start().
session_start();
Alla sessione viene associato un numero ID univoco per distinguerla dalle altre sessioni degli altri utenti.
Una volta inizializzata la sessione, posso usarla per scrivere e leggere i dati.
Importante. Devo inserire session_start() in tutte le pagine che usano la sessione, prima delle altre funzioni che gestiscono la sessione. Quando l'istruzione session_start() trova una sessione già aperta, continua a usare quest'ultima. Soltanto se non la trova, crea una nuova sessione.
Come scrivere dati nella sessione
Per scrivere un dato nella sessione utilizzo l'istruzione $_SESSION.
$_SESSION['nome_variabile']='dato';
Tra parentesi quadre indico il nome della variabile di sessione da utilizzare.
Posso scegliere qualsiasi nome. In genere, utilizzo un nome che faccia subito capire qual'è il contenuto della variabile.
Dopo il simbolo uguale scrivo il valore da assegnare alla variabile.
Un esempio pratico
Per scrivere il cognome dell'utente creo la variabile 'cognome'.
$_SESSION['cognome']='Minini';
Nella variabile di sessione cognome viene registrato il valore 'Minini'.
Come leggere i dati nella sessione
Per leggere i dati precedentemente scritti nella sessione utilizzo la funzione $_SESSION.
$_SESSION['nome_variabile'];
Posso utilizzare la funzione in qualsiasi altra istruzione php durante l'elaborazione dati.
Un esempio pratico
Per visualizzare il dato registrato nella variabile di sessione cognome scrivo:
echo($_SESSION['cognome']);
L'istruzione echo visualizza sullo schermo il contenuto della variabile, ossia "Minini".
Minini
E così via.
Come cancellare un dato nella sessione
Per eliminare un dato nella sessione utilizzo l'istruzione unset.
unset($_SESSION['name']);
Un esempio pratico
Per rimuovere la variabile di sessione cognome, digito la seguente istruzione:
unset($_SESSION['cognome']);
Questa istruzione distrugge soltanto il dato cognome, lasciando invariati tutti gli altri dati della sessione.
Come azzerare tutti i dati della sessione?
Per cancellare tutte le variabili di sessione, utilizzo la funzione session_unset().
session_unset();
Questa istruzione elimina tutti i dati registrati nella sessione, senza però chiudere la sessione stessa.
Come terminare una sessione
Per chiudere una sessione utilizzo l'istruzione session_destroy();
session_destroy();
Questa istruzione cancella la sessione e i dati contenuti.
E' indispensabile per le operazioni di logout.