Sessioni PHP

Le variabili di sessione PHP vengono utilizzate per memorizzare informazioni riguardanti la sessione dell'utente o per modificare le impostazioni della sessione dell'utente. Le informazioni salvate dalle variabili di sessione sono per un singolo utente e sono utilizzabili in tutte le pagine dell'applicazione.

Variabile di sessione PHP

Quando esegui un'applicazione, la apri, fai alcune modifiche e poi la chiudi. Questo è molto simile a una sessione. Il computer sa chi sei. Sa quando hai avviato l'applicazione e quando l'hai terminata. Tuttavia, su Internet, c'è un problema: il server non sa chi sei e cosa stai facendo, questo è dovuto al fatto che l'indirizzo HTTP non può mantenere lo stato.

Salvando le informazioni degli utenti sul server per un utilizzo successivo, PHP sessione risolve questo problema (ad esempio, nome utente, prodotti acquistati, ecc.). Tuttavia, le informazioni di sessione sono temporanee e vengono eliminate quando l'utente lascia il sito web. Se hai bisogno di memorizzare permanentemente le informazioni, puoi salvare i dati nel database.

Il meccanismo di lavoro della sessione è: creare un ID unico (UID) per ogni visitatore e memorizzare le variabili basate su questo UID. L'UID viene memorizzato nel cookie o trasmesso tramite URL.

Avviare sessione PHP

Prima di salvare le informazioni dell'utente nella sessione PHP, è necessario avviare la sessione.

Nota:La funzione session_start() deve essere posizionata prima dei tag <html>:

<?php session_start(); ?>
<html>
<body>
</body>
</html>

Il codice sopra registrerà la sessione dell'utente sul server, permettendoti di iniziare a salvare le informazioni dell'utente e assegnando un UID alla sessione dell'utente.

Salvare variabili di sessione

Il metodo corretto per salvare e recuperare le variabili di sessione è utilizzare la variabile $_SESSION di PHP:

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

Output:

Pageviews=1

Nell'esempio seguente, creiamo un semplice contatore di page-view. La funzione isset() verifica se la variabile "views" è stata impostata. Se la variabile "views" è stata impostata, sommiamo il contatore. Se "views" non esiste, creiamo la variabile "views" e la impostiamo a 1:

<?php
session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;
else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

Terminare Sessione

Se desideri eliminare alcuni dati di sessione, puoi utilizzare la funzione unset() o session_destroy().

La funzione unset() viene utilizzata per liberare la variabile di sessione specificata:

<?php
unset($_SESSION['views']);
?>

Puoi anche terminare completamente la sessione con la funzione session_destroy():

<?php
session_destroy();
?>

Nota:session_destroy() ripristinerà la sessione, perderete tutti i dati di sessione memorizzati.