Sesijos ir formos PHP

Tarkime, kad turime du PHP failus. Failelyje test1.php patalpinkime formą, kuri paklausia vartotojo dviejų skaičių:

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

Šiame pačiame faile patalpkime formos apdorojimo kodą. Šiame kode įrašysime įvestų duomenis į sesiją:

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

Svarbus niuansas: faile formos apdorojimo kodas turi būti prieš pačią formą. Kodėl: nes šiame kode mes dirbame su sesija, o tai reiškia, kad negali būti jokios išvesties į ekraną prieš tai.

Dabar faile test2.php suraskime į sesiją išsaugotų skaičių sumą:

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

Kokia seka visa tai turėtų veikti? Pirmiausia vartotojas užėjęs į pushlapį test1.php, užpildo formą ir paspaudžia mygtuką. Po to vėl pateks į test1.php, bet jau su išsiųstais formos duomenimis. Tuo metu jis pateks į sąlygą, kurioje mes įrašome formos duomenis į sesiją.

Tuomet vartotojas turi rankiniu būdu užėiti į pushlapį test2.php - ir ten jis pamatys įvestų skaičių sumą.

Galite paklausti: kam taip komplikuoti? Juk galima buvo iš karto išsiųsti formą į pushlapį test2.php. Esmė ta, kad šiuo atveju patogumas yra tas, kad pati forma ir jos apdorojimo kodas yra talpinami viename puslapyje. Tai, žinoma, patogu ne visada, bet kartais būna reikalinga.

Задание 1

Viename puslapyje, naudojantis forma, paklauskite vartotojo pavardės, vardo ir amžiaus. Įrašykite šiuos duomenis į sesiją. Užėjus į kitą pushlapį, atvaizduokite šiuos duomenis ekrane.