Пусть у нас есть два 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'];
}
?>
Важный нюанс: в файле код обработки формы должен стоять до самой формы. Почему: потому что в этом коде мы работаем с сессией, а значит не должно быть никакого вывода на экран до этого.
Давайте теперь в файле test2.php
найдем
сумму чисел, сохраненных в сессии:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
В какой последовательности это все должно
работать? Сначала пользователь заходит на
страницу test1.php
, заполняет форму
и жмет на кнопку. После этого он опять попадает
на test1.php
, но уже с отправленными
данными формы. При этом он попадает в условие,
в котором мы пишем данные формы в сессию.
Затем пользователь должен вручную зайти на
страницу test2.php
- и там он увидит
сумму введенных чисел.
Вы можете спросить: зачем так мудрить? Ведь
можно было сразу отправить форму на страницу
test2.php
. Дело в том, что в данном
случае удобство в том, что сама форма и код
ее обработки размещаются на одной странице.
Такое, конечно же, удобно не всегда, но иногда
бывает нужно.
На одной странице с помощью формы спросите у пользователя фамилию, имя и возраст. Запишите эти данные в сессию. При заходе на другую страницу выведите эти данные на экран.