Il logo del sito

Appunti su PHP

Traduzione da PHP Sessions

PHP 5 HTTP References

§ 1. PHP File Sessions

Una sessione è un modo per memorizzare informazioni (in variabili) da usare su più pagine. Diversamente da un cookie, le informazioni non sono memorizzate nel computer dell'utente.

§ 1.1. Che cosa è una sessione PHP?

Lavorando con una applicazione, questa viene aperta, vengono eseguite alcune modifiche, ed in seguito l'applicazione viene chiusa. Questo è molto simile ad una Sessione. Il computer sa chi sei. Conosce quando avvii l'applicazione e quando la chiudi. Ma su Internet c'è un problema: il web server non conosce chi tu sia o cosa tu faccia, questo perchè l'indirizzo HTTP non mantiene il suo stato.

Le variabili session risolvono questo problema memorizzando le informazioni da usare su più pagine(ad esempio username, colori favorit, etc.) Per default, le varibili di sessione rimangono sino alla chiusura del browser.

Le variabili di sessione conservano le informazioni di un singolo utente e sono disponibili su tutte le pagine dell'applicazione.

Nota: Se hai bisogno di una memorizzazione permanente, potresti voler memorizzare i dati in un database.

§ 1.2. Avviare una sessione PHP

Una sessione inizia con la funzione session_start()

Le variabili di sessione vengono impostate cono la variabile globale $_SESSION

Ora, in questa pagina, avviamo una nuova sessione PHP e settiamo alcune variabili:

Nota:La funzione session_start() deve essere posta prima di qualunque tag html.


             <?php
               $_SESSION["favcolor"]="green";
               $_SESSION["favanimal"]="cat";
               echo "<p class=php>Session varables are set </p>";
            ?>        
            
Session varables are set

§ 1.3. Ottenere i valori delle variabili di sessione.

Per recuperate le variabili di sessione basta referenziarle, nell'array associativo $_SESSION:


<?php
   echo "<p class=php> Favorite color is ". $_SESSION["favcolor"] . " </p>";
   echo "<p class=php> Favorite animal is ". $_SESSION["favanimal"] . " </p>";            
?>        

Favorite color is green

Favorite animal is cat

Un altro modo per mostrare tutte le variabile di sessione è il seguente.:


<?php
   print_r($_SESSION);       
?>        
Array ( [favcolor] => green [favanimal] => cat )

Ora creiamo una pagina php_Sessions2.php. In questa pagina accederemo alle informazioni settate in php_Sesions.php

Prova php_Sessions2.php

Notare che le variabili di sessione non sono passate individualmente ad ogni nuova pagina. Esse sono recuperate dalla sessione che apriamo all'inizio di ogni nuova pagina con session_start()

Notare anche che tutte le variabili di sessione sono memorizzate nella variabile globale $_SESSION.

Come Funziona? Come fa a riconoscermi.

La maggior parte delle sessioni setta una user-key relativa all'utente del computer che ha un aspetto come questo:765487cf34ert8dede5a562e4f3a7e12. Allora, quando una sessione viene aperta su un altra pagina, essa cerca la user-key. Se la trova, accede a quella sessione, altrimenti avvia una nuova sessione.

§ 1.4. Modificare una variabile di sessione.

Si fa semplicemente sovrascrivendola.

§ 1.5. Distruggere una sessione

Per rimuovere tutte le variabili di sessione e distruggere la sessione sono disponibili le funzioni: session_unset(); e session_destroy();