Sesije i forme u PHP
Pretpostavimo da imamo dva PHP fajla. Stavimo u
fajlu test1.php formu koja pita
korisnika za dva broja:
<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:
<?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:
<?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.
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.