Sessioni e form in PHP

Supponiamo di avere due file PHP. Inseriamo nel file test1.php un modulo che chiede all'utente due numeri:

test1.php<form method="GET">
  <input name="num1">
  <input name="num2">
  <input type="submit">
</form>

Nello stesso file, inseriamo il codice di elaborazione del modulo. In questo codice, scriveremo i dati degli input nella sessione:

test1.php<?php
  session_start();
  
  if (!empty($_GET)) {
    $_SESSION['num1'] = $_GET['num1'];
    $_SESSION['num2'] = $_GET['num2'];
  }
?>

Una sfumatura importante: nel file, il codice di elaborazione del modulo deve trovarsi prima del modulo stesso. Perché: perché in questo codice lavoriamo con la sessione, e quindi non ci deve essere alcun output a schermo prima di questo.

Ora, nel file test2.php, troviamo la somma dei numeri salvati nella sessione:

test2.php<?php
  if (!empty($_SESSION)) {
    echo $_SESSION['num1'] + $_SESSION['num2'];
  }
?>

In quale sequenza dovrebbe funzionare tutto questo? Prima, l'utente accede alla pagina test1.php, compila il modulo e preme il pulsante. Dopodiché, ritorna su test1.php, ma questa volta con i dati inviati dal modulo. In questo caso, entra nella condizione in cui scriviamo i dati del modulo nella sessione.

Poi, l'utente deve accedere manualmente alla pagina test2.php - e lì vedrà la somma dei numeri inseriti.

Potreste chiedere: perché complicarsi così la vita? Dopotutto si poteva inviare subito il modulo alla pagina test2.php. Il fatto è che, in questo caso, il vantaggio è che il modulo stesso e il codice per la sua elaborazione si trovano sulla stessa pagina. Certo, questo non è sempre conveniente, ma a volte può essere necessario.

Задание 1

Su una pagina, utilizzando un modulo, chiedete all'utente cognome, nome ed età. Registrate questi dati nella sessione. Quando si accede a un'altra pagina, visualizzate questi dati sullo schermo.