Introduzione
Indice
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:
Nel tuo secondo file, si chiama
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
Finalizzare una sessione
Copia codice
<?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
.
Copia codice
<?php
// continua la sessione
session_start();
// recupera i dati della sessione
echo "Username = " . $_SESSION["username"];
?>
$_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.⤽
È 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
Per eliminare tutti i valori di sessione, è possibile utilizzare la funzione
Entrambi gli esempi riguardano solo i dati memorizzati nella sessione, non la sessione stessa. È ancora possibile memorizzare altri valori nella variabile
Per eliminare un singolo valore di sessione utilizzare la funzione
unset()
:
Copia codice
<?php
session_start();
// eliminare il valore di username
unset($_SESSION["username"]);
?>
session_unset()
:
Copia codice
<?php
session_start();
// eliminare tutti i valori della sessione
session_unset();
?>
$_SESSION
dopo averlo chiamato. Se si desidera interrompere completamente la sessione, per esempio quando un utente si disconnette, si utilizza la funzione session_destroy()
.
Copia codice
<?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.
Ancora nessun commento