Sesije i forme u PHP

Pretpostavimo da imamo dva PHP fajla. Stavimo u fajlu test1.php formu koja pita korisnika za dva broja:

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

U ovom istom fajlu postavimo kod za obradu forme. U ovom kodu ćemo upisati podatke iz input polja u sesiju:

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

Važan detalj: u fajlu kod za obradu forme mora biti postavljen pre same forme. Zašto: zato što u ovom kodu radimo sa sesijom, a to znači da ne sme biti nikakvog ispisa na ekran pre toga.

Sada ćemo u fajlu test2.php naći zbir brojeva sačuvanih u sesiji:

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

U kom redosledu ovo sve treba da radi? Prvo korisnik ode na stranicu test1.php, popuni formu i pritisne dugme. Nakon toga opet dolazi na test1.php, ali već sa poslatim podacima forme. Pritom dolazi u uslov, u koji upisujemo podatke forme u sesiju.

Zatim korisnik treba ručno da ode na stranicu test2.php - i tamo će videti zbir unetih brojeva.

Možete pitati: zašto tako komplikovati? Zar nije moglo odmah poslati formu na stranicu test2.php. Stvar je u tome, što u ovom slučaju pogodnost je u tome, što sama forma i kod njenog procesiranja se nalaze na jednoj stranici. To, naravno, nije uvek zgodno, ali ponekad bude potrebno.

Задание 1

Na jednoj stranici pomoću forme pitajte korisnika za prezime, ime i godine. Zabeležite ove podatke u sesiju. Pri odlasku na drugu stranicu prikažite ove podatke na ekranu.