Istunnot ja lomakkeet PHP:ssä

Oletetaan, että meillä on kaksi PHP-tiedostoa. Laita tiedostoon test1.php lomake, joka kysyy käyttäjältä kahta numeroa:

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

Samaan tiedostoon laitamme lomakkeen käsittelykoodin. Tässä koodissa kirjoitamme syöttökenttien tiedot istuntoon:

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

Tärkeä vivahde: tiedostossa lomakkeen käsittelykoodin tulee olla ennen itse lomaketta. Miksi: koska tässä koodissa työskentelemme istunnon kanssa, eikä siksi saa olla minkäänlaista tulostusta näytölle ennen tätä.

Etsitään nyt tiedostossa test2.php istuntoon tallennettujen numeroiden summa:

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

Missä järjestyksessä tämän kaiken pitäisi toimia? Ensin käyttäjä menee sivulle test1.php, täyttää lomakkeen ja painaa nappia. Tämän jälkeen hän päätyy taas sivulle test1.php, mutta nyt lähetetyillä lomaketiedoilla. Samalla hän päätyy ehtoon, jossa kirjoitamme lomaketiedot istuntoon.

Sitten käyttäjän tulee manuaalisesti mennä sivulle test2.php - ja siellä hän näkee syöttämiensä numeroiden summan.

Saattaa kysyä: miksi tehdä näin monimutkaisesti? Eihän voisi vain lähettää lomaketta suoraan sivulle test2.php. Asia on siinä, että tässä tapauksessa mukavuus on siinä, että itse lomake ja sen käsittelykoodi sijaitsevat samalla sivulla. Tämä ei tietenkään aina ole kätevää, mutta joskus sitä tarvitaan.

Задание 1

Kysy samalla sivulla lomakkeen avulla käyttäjältä sukunimi, etunimi ja ikä. Tallenna nämä tiedot istuntoon. Kun siirryt toiselle sivulle, näytä nämä tiedot näytöllä.