Sesijas un formas PHP
Pieņemsim, ka mums ir divi PHP faili. Izveidosim
failā test1.php formu, kas pajautā
lietotājam divus skaitļus:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
Šajā pašā failā ievietosim formas apstrādes kodu. Šajā kodā mēs ierakstīsim ievades lauku datus sesijā:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Svarīga nianse: failā formas apstrādes kodam jāatrodas pirms pašas formas. Kāpēc: tāpēc ka šajā kodā mēs strādājam ar sesiju, un tāpēc nedrīkst būt nekādas izvades uz ekrānu pirms tam.
Tagad failā test2.php atradīsim
sesijā saglabāto skaitļu summu:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
Kādā secībā tam visam jāstrādā? Vispirms lietotājs ierodas
lapā test1.php, aizpilda formu
un nospiež pogu. Pēc tam viņš atkal nonāk
lapā test1.php, bet jau ar nosūtītajiem
formas datiem. Šajā gadījumā viņš nonāk nosacījumā,
kurā mēs ierakstām formas datus sesijā.
Pēc tam lietotājam manuāli jāiet uz
lapu test2.php - un tur viņš ieraudzīs
ievadīto skaitļu summu.
Jūs varētu vaicāt: kāpēc tik sarežģīti? Galu galā
varētu uzreiz nosūtīt formu uz lapu
test2.php. Lieta tāda, ka šajā
gadījumā ērtība ir tā, ka pati forma un kods
tās apstrādei atrodas vienā lapā.
Tas, protams, ne vienmēr ir ērti, bet dažreiz
var būt nepieciešams.
Vienā lapā, izmantojot formu, pajautājiet lietotājam uzvārdu, vārdu un vecumu. Ierakstiet šos datus sesijā. Ienākot citā lapā, izvadiet šos datus uz ekrāna.