Сесии и форми в PHP
Нека имаме два PHP файла. Нека във
файла test1.php поставим форма, която пита
потребителя за две числа:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
В същия файл ще поставим кода за обработка на формата. В този код ще запишем данните от input полетата в сесията:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Важен нюанс: във файла кодът за обработка на формата трябва да е преди самата форма. Защо: защото в този код работим със сесия, а следователно не трябва да има никаков изход на екрана преди това.
Нека сега във файла test2.php намерим
сумата на числата, записани в сесията:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
В каква последователност трябва да работи всичко това? Първо потребителят влиза в
страницата test1.php, попълва формата
и натиска бутона. След това отново попада
в test1.php, но вече с изпратени
данни от формата. При това попада в условието,
в което записваме данните от формата в сесията.
След това потребителят трябва ръчно да влезе в
страницата test2.php - и там ще види
сумата на въведените числа.
Може да попитате: защо да правим толкова сложно? Все пак
можеше веднага да изпратим формата към страницата
test2.php. Работата е там, че в този
случай удобството е, че самата форма и кодът
за нейната обработка се намират на една страница.
Такова, разбира се, не винаги е удобно, но понякога
се налага.
На една страница с помощта на форма попитайте потребителя за фамилия, име и възраст. Запишете тези данни в сесията. При влизане в друга страница изведете тези данни на екрана.