Gestire la sessione usando PHP
INTRODUZIONE
Questo tutorial è destinato a darvi una semplice
spiegazione su come gestire la sessione (session) usando
PHP.
Per coloro che non sanno cos'è una sessione,
basta semplicemente dire che è un mezzo per preservare
determinati dati attraverso accessi successivi.
Questo vi permette di sviluppare applicazioni più
personalizzate e incrementare l'interesse al vostro sito
web.
Questo tutorial presuppone alcune conoscenze da parte del
lettore:
* Familiarità con PHP
* Avere accesso al server o ai server che fanno funzionare
il pacchetto di PHP.
COME CREARE UNA SESSIONE
Ci sono alcuni semplici punti da seguire quando si crea una
sessione PHP, vediamo di semplificarli:
1. Assegnare un nome alla sessione (questo è
facoltativo, PHP lo assegnerà per voi)
2. Iniziare la sessione
3. Registrare le variabili
4. Assegnare valori per le variabili di sessione
5. Passare la sezione alle pagine consecutive
Questi punti si possono eseguire utilizzando varie funzioni
di PHP per la gestione delle sessioni.
Per raggiungere il nostro obiettivo, ci soffermiamo sulle
seguenti funzioni di PHP:
string session_name ( [string name] ) bool session_start ( ) bool session_register ( mixed name [, mixed ...] )
La funzione session_name() ci permette di assegnare un nome
alla sessione.
Il nome della sessione può contenere solamente
caratteri alfanumerici e deve essere breve e descrittivo.
La funzione session_start() genera una nuova funzione oppure
riprende la sessione corrente.
Questa funzione restituirà sempre, come valore, TRUE.
La funzione session_register() accetta una variabile e
registra la variabile globale con quel nome nella sessione
corrente.
Questa funzione restituisce un valore TRUE quando tutte le
variabili sono registrate con successo, e un valore FALSE in
caso contrario.
COSTRUIRE UNA SESSIONE
Usando le funzioni che abbiamo visto precedentemente, andiamo ora a creare una sessione e registrare in essa alcuni valori:
1 <?php
2 $last_sess = session_name("ExampleSession");
3 echo "The prior session name was $last_sess<br>";
4 $new_sess = session_name("ExampleSession");
5 echo "The new session name is $new_sess<br>";
6 ?>
Questa parte di codice dovrebbe prelevare il nome di default della sessione di PHPSESSID alla sua prima chiamata e riassegnare un nome ExampleSession alla seconda chiamata.
1 <?php
2 $last_sess = session_name("ExampleSession");
3 $new_sess = session_name("ExampleSession");
4 session_start();
5 echo "The prior session name was $last_sess<br>";
6 echo "The new session name is $new_sess<br>";
7 echo "The new session has started<br>";
8 ?>
In questo modo abbiamo dato un nome e iniziato la nostra
sessione.
Noterete che i commenti ora sono stati spostati sotto le
funzioni di sessione.
Questo perché session_start() verrà trasmesso
con le nostre intestazioni HTTP, altrimenti verrà
generato un errore.
Il passo successivo è quello di assegnare alcuni dati
significativi alla sessione per l' accesso successivo.
USARE LA SESSIONE
Ora proviamo ad assegnare alcune variabili alla sessione per
un uso futuro all'interno dell'applicazione.
In questo caso lasciamo che sia PHP a dare un nome alla
sessione:
01 <?php
02session_start();
03 session_register("SESSION_DATA");
04 if (! isset($SESSION_DATA)) {
05 $SESSION_DATA["count"] = 0;
06 echo "<li>Counter has been initialized. Reload page to see results.";
07 } else {
08 echo "<li>Session name: $PHPSESSID";
09 $SESSION_DATA["count"]++;
10 }
11 echo "<li>The counter is now at: $SESSION_DATA[count]";
12 ?>
Questa parte di codice, registrerà una sessione alla visita iniziale, dopodiché andrà ad incrementare di +1 il contatore, ad ogni visita successiva.
Per default, PHP lascia una traccia delle sessioni nei files
temporanei nella /tmp directory.
Se avete accesso a quell'area sul vostro server, potete
vedere i files temporanei fisicamente residenti nel server.
Per cancellare le variabili di sessione si utilizza la funzione session_destroy().
bool session_destroy ( )
Questa funzione distrugge tutti i dati associati alla
sessione corrente, ma lascia invariate le variabili globali e
la sessione dei cookies.
Questa funzione restituisce un valore TRUE in caso di
successo o di FALSE nel caso sia fallita la distruzione dei
dati della sessione.
01 <?php
02 session_start();
03 session_register("SESSION_DATA");
04 if (! isset($SESSION_DATA)) {
05 $SESSION_DATA["count"] = 0;
06 echo "<li>Counter has been initialized. Reload page to see results.";
07 } else {
08 echo "<li>Session name: $PHPSESSID";
09 $SESSION_DATA["count"]++;
10 }
11 echo "<li>The counter is now at: $SESSION_DATA[count]";
12 session_destroy();
13 ?>
Questa parte di codice impedirà al contatore di incrementarsi quando la variabile viene distrutta alla fine di ogni script in esecuzione.
CONCLUSIONE
La sessione permette di registrare delle variabili che
verranno conservate attraverso richieste multiple. Quando un
visitatore entra nel vostro sito, PHP controllerà
automaticamente, oppure dietro vostra richiesta, se una
specifica sessione ID è stata spedita con la
richiesta.
In questo caso la condizione precedente è ricreata.