La gestione delle sessioni con PHP
Pagina 1 di 3
Una corretta gestione delle sessioni è determinante nello sviluppo di applicazioni web ad elevato grado di interazione con l'utente. Come sappiamo, infatti, il web non ha memoria... o meglio ce l'ha grazie alle sessioni (e ai cookie).
In determinate circostanze è importante che il nostro sito "si accorga" che una pagina vene visitata da un determinato utente riconoscendo a quest'ultimo, e solo a lui, di compiere determinate operazioni o di svolgere determinate attività a lui indelebilmente associate.
Per fare un esempio, pensiamo ad un utente che si registri ad un sito di e-commerce e voglia effettuare un po' di spese. E' facilmente intuibile come il nostro sistema debba essere in grado di individuare tutte le attività di quel dato utente al fine di tracciare i suoi acquisti ed i relativi pagamenti. Per farlo si usano, appunto, le sessioni.
In realtà le strade da seguire potrebbero essere due: le sessioni oppure i cookie.
Le differenze tra i due strumenti sono numerose, la principale sta nel fatto che mentre la sessione si esaurisce con il termine della singola navigazione (ad es. l'utente chiude il browser), il cookie ha una durata superiore che generalmente supera la singola sessione di navigazione e quindi consente un riconoscimento "prolungato" dell'utente anche per le sessioni successive.
A prima vista, pertanto, il cookie sembrerebbe la scelta ottimale, tuttavia non è così. I motivi di questa mia osservazione sono tanti, la sicurezza in primo luogo: per capire quello di cui stiamo parlando basti pensare che mentre la sessione viene salvata sul server, il cookie viene salvato sul PC dell'utente!
In questa breve serie di articoli tratteremo, pertanto, la gestione delle sessioni.
Cos'è una sessione?
La sessione è, in estrema sintesi, un file di testo creato dal nostro sito e depositato in una cartella predefinita del server che ci ospita. La funzione di questo file di testo è quella di fungere da contenitore per diverse informazioni sull'utente cui è associato.
Come abbiamo detto questo file di testo viene associato ad un dato utente. Ma come? Semplice, attraverso un cookie oppure con un richiamo nelle url navigate.
Nel primo caso viene creato sul PC dell'utente un cookie contenente l'ID della sessione (la scadenza di questo cookie è impostata di deafult alla chiusura del browser), nel secondo caso (generalmente utilizzato quando il client non accetta i cookie) l'ID della sessione viene passato in un parametro della URL sotto forma di querystring.
Vediamo di seguito un semplice schema che mostra il processo che si scatena ad una operazione di Login:








