Esercizi sulle sessioni

Leggi quanto c'è nella seconda parte della pagina e poi segui l'esercizio guidato:

  1. Crea una prima pagina php in cui usi il comando php session_start(); all'inizio della pagina per "attivare" le variabili di sessione
  2. Quando carichi la pagina verifica il valore della variabile sessione "valore" memorizzata in $_SESSION["valore"]: se è vuoto impostala a 5
  3. Aggiungi un campo di testo in un form. Se l'utente inserisce un valore e preme invia cambia il valore della variabile della sessione con il valore inserito. (esempio)
  4. Se si preme il tasto invia senza inserire un valore la variabile di sessione non viene modificata
  5. Inserisci nella pagina un link ad una seconda pagina php che stampa il valore della variabile di sessione
  6. Metti nella seconda pagina un link per tornare alla prima pagina
  7. Metti nella prima pagina un altro tasto (in un altro form) che se premuto cancella il contenuto della variabile di sessione
  8. Scrivi nella prima pagina in un paragrafo la risposta a questa domanda: cosa succede se chiudo e riapro il browser? La sessione si mantiene?
  9. Scrivi nella prima pagina in un paragrafo la risposta a questa domanda: cosa succede se dimentico session_start() in una pagina?
  10. Scrivi nella prima pagina in un paragrafo la risposta a questa domanda: cosa succede se scrivo session_start() in fondo alla pagina invece che all'inizio?

Cosa sono le sessioni?

Come fa Facebook a ricordarsi chi siete dopo che avete inserito username e passowrd? Utilizza la sessioni!

Di solito ogni volta che entri in una pagina è come se ci fossi entrato per la prima volta. Attivando le variabili di sessione invece puoi mantenere dei valori da una pagina all'altra (sotto sotto si usano i cookies!). Il comando per attivare una sessione si scrive in genere all'inizio di una pagina ed è:

    session_start();

Una volta attivate le variabili di sessione nella pagina si possono leggere e scrivere in un modo molto simile alle variabili $_REQUEST, $_GET e $POST che abbiamo già visto.

    $_SESSION["prova"] = "Ciao Mondo"; // Salva nella variabile prova
    $_SESSION["valori"] = array("a", "b", "c", "d"); // Inserisce un vettore nella variabile valori
    echo $_SESSION["prova"]; // Stampa il contenuto di prova nell'HTML

$_SESSION è un vettore associativo che può essere stampato con print_r ($_SESSION);. In php gli array non vi abbandoneranno mai!
Quindi come faccio a salvare in una pagina un dato e stamparlo in un'altra pagina? Semplice! Nella prima pagina eseguo session_start(); e poi assegno ad una variabile sessione un valore. Nella seconda pagina eseguo ancora session_start(); e ne stampo il valore. Prova ad inserire questo codice in una pagina:

    session_start(); // Codice nella pagina 1
    $_SESSION["a"] = 5; // Codice nella pagina 1

E questo in un'altra pagina:

    session_start(); // Codice nella pagina 2
    echo $_SESSION["a"]; // Codice nella pagina 2, stamperà 5

Quindi vai dalla prima alla seconda con un link o a mano e nota che la sessione si mantiene!

Potete provare il codice precedente e trovare ulteriori esempi in questa pagina di w3schools.