Sessioner och formulär i PHP
Låt oss säga att vi har två PHP-filer. Låt oss i
filen test1.php placera ett formulär som frågar
användaren om två tal:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
I samma fil placerar vi koden som hanterar formuläret. I den här koden kommer vi att skriva indata från fälten till sessionen:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
En viktig nyans: i filen måste koden för formulärhantering placeras före själva formuläret. Varför: för att i den här koden arbetar vi med sessionen, och därför får det inte finnas någon utskrift till skärmen före detta.
Låt oss nu i filen test2.php hitta
summan av de tal som sparats i sessionen:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
I vilken ordning ska allt detta
fungera? Först går användaren till
sidan test1.php, fyller i formuläret
och klickar på knappen. Efter det hamnar de igen
på test1.php, men nu med inskickade
formulärdata. Då hamnar de i villkoret
där vi skriver formulärdatan till sessionen.
Sedan måste användaren manuellt gå till
sidan test2.php - och där kommer de att se
summan av de inmatade talen.
Du kanske frågar: varför krångla till det så här? Vi kunde ju
ha skickat formuläret direkt till sidan
test2.php. Saken är den att fördelen i detta
fall är att själva formuläret och koden
som hanterar det finns på samma sida.
Detta är naturligtvis inte alltid bekvämt, men ibland
kan det vara nödvändigt.
På en sida, använd ett formulär för att fråga användaren om efternamn, förnamn och ålder. Spara dessa data i sessionen. När du går till en annan sida, visa dessa data på skärmen.