PHP да сессия ва формалар
Фарз қилайлик, бизда иккита PHP файли бор. Ку́йидаги
test1.php файлида фойдаланувчидан иккита
сон сўрайдиган формани жойлаштирамиз:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
Шу файлда формани қайта ишлаш кодини жойлаштирамиз. Ушбу кодда биз инпутлар маълумотларини сессияга ёзамиз:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Мухим нуқта: файлда формани қайта ишлаш коди форманинг ўзидан олдин туриши керак. Нега: чунки ушбу кодда биз сессия билан ишлаймиз, ва демак бунгacha экранга ҳеч қандай чиқиш бўлмаслиги керак.
Энди test2.php файлида сессияда сақланган
сонларнинг йиғиндисини топамиз:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
Буларнинг �аммаси қандай тартибда ишлаши керак? Авваламбор фойдаланувчи
test1.php саҳифасига кириб, формани тўлдириб
тугмани босadi. Шундан сўнг у яна test1.php саҳифасига түшади,
лекин энди юборилган форма маълумотлари билан. Бу пайтда у
шартга түшади, унда биз форма маълумотларини сессияга љозамиз.
Сўнгра фойдаланувчи test2.php саҳифасига қўлда кириши керак
- ва у ерда киритилган сонларнинг йиғиндисини кўради.
Сўрашингиз мумкин: нега шундай мураккаб қилиш керак? Axir
формани дастұтан test2.php саҳифасига юбориш мумкин эди.
Гапи шундаки, бу ҳолатда қулайлик шундаки, форманинг ўзи ва уни
қайта ишлаш коди битта саҳифада жойлашади.
Бу, албатта, ҳамма вақт қулай эмас, лекин баъзан зарур бўлади.
Битта саҳифада форма ёрдамида фойдаланувчидан fамилияси, исми ва yoshiни сўранг. Ушбу маълумотларни сессияга ёзинг. Бошқа саҳифага кирилганда, ушбу маълумотларни экранга чиқаринг.