Sesions și formulare în PHP
Să presupunem că avem două fișiere PHP. Să plasăm în
fișierul test1.php un formular care întreabă
utilizatorul două numere:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
În același fișier, să plasăm codul de procesare a formularului. În acest cod, vom scrie datele din input-uri în sesiune:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Un nuanță importantă: în fișier, codul de procesare a formularului trebuie să fie plasat înaintea formularului însuși. De ce: pentru că în acest cod lucrăm cu sesiunea, și prin urmare nu trebuie să existe nicio ieșire pe ecran înainte de aceasta.
Să găsim acum în fișierul test2.php
suma numerelor salvate în sesiune:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
În ce secvență ar trebui să funcționeze toate acestea?
Mai întâi, utilizatorul accesează
pagina test1.php, completează formularul
și apasă pe buton. După aceea, ajunge din nou
la test1.php, dar de data aceasta cu datele
trimise prin formular. În acest moment, el intră în condiția
în care scriem datele formularului în sesiune.
Apoi, utilizatorul trebuie să acceseze manual
pagina test2.php - și acolo va vedea
suma numerelor introduse.
Vă puteți întreba: de ce să ne complicăm atât? Puteam
trimite formularul direct către pagina
test2.php. Ideea este că, în acest
caz, avantajul constă în faptul că formularul însuși și codul
procesării sale sunt plasate pe aceeași pagină.
Desigur, acest lucru nu este întotdeauna convenabil, dar uneori
poate fi necesar.
Pe o pagină, folosind un formular, întrebați utilizatorul despre nume, prenume și vârstă. Înregistrați aceste date în sesiune. La accesarea unei alte pagini, afișați aceste date pe ecran.