Relácie a formuláre v PHP
Nech máme dva PHP súbory. Dajme do
súboru test1.php formulár, ktorý sa pýta
používateľa dve čísla:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
V tomto istom súbore umiestnime kód spracovania formulára. V tomto kóde zapíšeme dáma vstupov do relácie:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Dôležitá nuansa: v súbore kód spracovania formulára musí byť umiestnený pred samotným formulárom. Prečo: pretože v tomto kóde pracujeme s reláciou, a to znamená, že by nemal byť žiadny výstup na obrazovku pred tým.
Teraz v súbore test2.php nájdime
súčet čísel uložených v relácii:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
V akom poradí by toto všetko malo
fungovať? Najprv používateľ príde na
stránku test1.php, vyplní formulár
a stlačí tlačidlo. Potom sa opäť dostane
na test1.php, ale už s odoslanými
dátami formulára. Pritom sa dostane do podmienky,
v ktorej zapisujeme dáta formulára do relácie.
Potom musí používateľ manuálne prísť na
stránku test2.php - a tam uvidí
súčet zadaných čísel.
Môžete sa opýtať: načo takto komplikovať? Veď
bolo možné okamžite odoslať formulár na stránku
test2.php. Vec sa má tak, že v tomto
prípade je výhoda v tom, že samotný formulár a kód
jeho spracovania sú umiestnené na jednej stránke.
Takéto riešenie samozrejme nie je vždy výhodné, ale niekedy
je potrebné.
Na jednej stránke pomocou formulára sa opýtajte používateľa na priezvisko, meno a vek. Zapíšte tieto dáta do relácie. Pri vstupe na druhú stránku zobrazte tieto dáta na obrazovke.