Redazione
a- a+

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.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Marcello
Ti è piaciuto l'articolo?