Introduzione

In questo articolo si descrive quello che è una sessione, come crearla, utilizzarla e distruggerla in PHP. Si spiega anche un paio di consigli per garantirne la sicurezza.

$_SESSION

$_SESSION è un array c le informazioni da tutte le pagine richieste che un utente fa durante la sua visita a un sito o da un’applicazione web. Un modo fondamentale per spiegare cos’è una sessione è come è immaginando il seguente scenario:
Quando si lavora con un’applicazione, la si apre, si apportano alcune modifiche, e poi la si chiude.
Questo è il compito della sessione nella sua forma più semplice.
Lo scenario di esempio ricorda il processo che avviene quando si utilizza un sistema di login. Il processo può essere estremamente complicato o incredibilmente semplice, fino a quando c’è un valore che persiste tra le richieste. Le informazioni memorizzate nella sessione possono essere recuperate in qualsiasi momento mentre la sessione è aperta.
Anche se ci sono molti utenti che accedono al sito allo stesso tempo, ognuno di loro avrà la sua propria sessione e grazie agli ID univoci assegnati e gestiti da PHP, ogni sessione permette a ciascun utente di avere a dispozione le informazioni solo a se stesso. Le informazioni di sessione vengono memorizzati sul server anziché sul computer dell’utente (così come vengono memorizzati dai cookies), il che rende le sessioni più sicure dei cookies tradizionali per passare informazioni tra le pagine richieste.
Usando le sessioni
Prima di poter memorizzare le informazioni in una sessione è necessario avviare il gestore di sessioni di PHP. Questo viene fatto all’inizio del vostro codice PHP, e deve essere fatto prima di qualsiasi testo, HTML o JavaScript che venga inviato al browser. Per avviare la sessione, si chiama la funzione session_start() all’inizio del file:
<?php
// partenza del motore!
session_start();
// dati della sessione
$_SESSION["username"] = "Pippo";
?>
session_start() inizia la sessione tra l’utente e il server, e permette di memorizzare i valori nella variabile $_SESSION per essere accessibile da altri script in seguito.
Nel tuo secondo file, si chiama session_start() ancora una volta e la sessione continua; quindi è possibile recuperare i valori da $_SESSION.
<?php
// continua la sessione
session_start();
// recupera i dati della sessione
echo "Username = " . $_SESSION["username"];
?>
Questo esempio è una dimostrazione di base che spiega come archiviare e di recuperare i dati in una sessione. Nel primo script, il valore “Pippo” è stato associato alla chiave “username” nell’array $_SESSION. Nel secondo script, si recupera l’informazione che è stata richiesta indietro attraverso l’array $_SESSION dalla sua chiave associativa. $_SESSION consente di archiviare e recuperare le informazioni attraverso le richieste di pagine di sessione nella navigazione attiva di un utente.
Finalizzare una sessione
È così importante come lo è quello di iniziare una sessione. Anche se una sessione è solo un modo per memorizzare temporaneamente i dati, è molto importante pulire tutto dopo il suo uso in modo da garantire la massima sicurezza quando si tratta di informazioni potenzialmente sensibili. È anche una buona pratica per evitare di avere una quantità enorme di dati di sessione sul server.
Per eliminare un singolo valore di sessione utilizzare la funzione unset():
<?php
session_start();
// eliminare il valore di username
unset($_SESSION["username"]);
?>
Per eliminare tutti i valori di sessione, è possibile utilizzare la funzione session_unset():
<?php
session_start();
// eliminare tutti i valori della sessione
session_unset();
?>
Entrambi gli esempi riguardano solo i dati memorizzati nella sessione, non la sessione stessa. È ancora possibile memorizzare altri valori nella variabile $_SESSION dopo averlo chiamato. Se si desidera interrompere completamente la sessione, per esempio quando un utente si disconnette, si utilizza la funzione session_destroy().
<?php
session_start();
// termina al sessione
session_destroy();
?>
È consigliato che quando si è sicuri che non è più necessaria la sessione di distruggerla utilizzando la funzione session_destroy(), piuttosto che eliminare solo i suoi valori con la funzione session_unset(). Se si eliminano solo i valori, la stessa sessione è ancora attiva ed è possibile iniettare del codice malizioso in quelle sessioni con dei valori manipolati.

Sono queste le sessioni in poche parole e la sua la funzionalità è molto semplice ma molto potente all’interno di PHP, che fornisce un’elegante soluzione al problema del passaggio dei dati tra le pagine web.

Similari
Guida allo Zend Framework
249% Zend
Zend Framework è un framework open source per PHP. Zend Framework separa la logica e le azioni usando il pattern MVC (Model View Controller). Cosa è lo Zend Framework? Framework per la costruzione di siti web più veloci e …
Python per tutti
176% Python
Python para todos è un libro sulla programmazione in Python. Questo è un tutoriale su Python adatto a tutti i livelli e si può scaricare in pdf gratuitamente in spagnolo. Il tutoriale di Python…
Fondamentali di jQuery
100% JQuery
jQuery stà diventando rapidamente uno strumento che ogni sviluppatore web di interfacce dovrebbe conoscere. Lo scopo di questo libro è di fornire una panoramica della biblioteca, in modo che qu…
Policy
24%
Il presente documento ha lo scopo di descrivere le modalità di gestione del presente sito web, relativamente al trattamento dei dati personali degli utenti che lo consultano. L’Informativa, resa ai sensi dell’art. 13 D.Lg…
Glossario – SEM
23% Seo
Quando si legge un articolo sul search engine marketing o quando ci si trova di fronte una proposta di attività nei motori di ricerca, capita frequentemente di imbattersi in termini propri del mondo dei motori di ricerca, …