Visitatori: 1052
Le sessioni sono ormai un elemento indispensabile per un sito web. Ogni volta che accediamo all'erea riservata di un sito (tanto per fare un esempio "il mio ebay") ci vengono richiesti i dati di accesso, ovvero username e password. Forse vi sarete domandati perchè questi dati ci vengono richiesti solo al momento dell'accesso e poi fin quando non chiudiamo il browser il nostro account rimane attivo? Bene, questo è prprio il principio di funzionamento delle sessioni.
I nostri dati vengono salvati in delle variabili di sessione e sono sempre disponibili fin quando non chiudiamo appunto il nostro browser (internet explorer, firefox). Ogni volta che visitiamo un Sito il server apre una sessione tramite il metodo session_start() assegnandolgi un identificatore univoco. La funzione session_start deve essere collocata all'inizio della pagina, prima di ogni output inviato al client (quindi anche prima del codice HTML!!!)
Supponiamo che l'utente abbia appena inserito i dati di accesso in un modulo HTML e che questo richiami tramite l'attributo "action" la pagina set_session.php. Per gestire la sessione faremo:
<?php
session_start();
$_SESSION['user'] = $_POST["username"];
$_SESSION['pass'] = $_POST["password"];
?>
codice HTML...
Come avrete già capito per creare una variabile di sessione si utilizza la variabile globale $_SESSION[] che in sostanza è un array che contiene tutte le variabili di sessione ed è memorizzato su un file del server. Al momento di creazione della sessione il server invia anche un cookie al nostro computer che contiene informazioni su tale file e sull'identificativo di sessione. Alla chiusura della sessione sia il file sul server che il cookie sul nostro pc vengono cancellati.
Per distruggere una sessione si utilizza la funzione session_destroy(). Per fare un esempio concreto questa funzione può essere utilizzata quando l'utente clicca sul pulsante "logout" o "esci" del nostro sito. Potremmo richiamare una pagine close_session.php che distrugge la sessione tramite tale funzione e reindirizza l'utente ad una pagina appropriata (magari con un messaggio del tipo "ti sei disconnesso. torna presto a trovarci!!") oppure, come spesso accade, alla Home page del sito.
<?php
session_destroy();
header("location: homepage.php");
?>
Va precisato che il tipo di reindirizzamento utilizzato sopra funziona se la pagina close_session.php non contiene il tag html <head>, deve contenere solo codice php (del resto ci serve solo per reindirizzare l'utente).
Lezione precedente | Indice degli articoli | Lezione Successiva

|