Сессии и формы в 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']; } ?>

Важный нюанс: в файле код обработки формы должен стоять до самой формы. Почему: потому что в этом коде мы работаем с сессией, а значит не должно быть никакого вывода на экран до этого.

Давайте теперь в файле test2.php найдем сумму чисел, сохраненных в сессии:

<?php if (!empty($_SESSION)) { echo $_SESSION['num1'] + $_SESSION['num2']; } ?>

В какой последовательности это все должно работать? Сначала пользователь заходит на страницу test1.php, заполняет форму и жмет на кнопку. После этого он опять попадает на test1.php, но уже с отправленными данными формы. При этом он попадает в условие, в котором мы пишем данные формы в сессию.

Затем пользователь должен вручную зайти на страницу test2.php - и там он увидит сумму введенных чисел.

Вы можете спросить: зачем так мудрить? Ведь можно было сразу отправить форму на страницу test2.php. Дело в том, что в данном случае удобство в том, что сама форма и код ее обработки размещаются на одной странице. Такое, конечно же, удобно не всегда, но иногда бывает нужно.

На одной странице с помощью формы спросите у пользователя фамилию, имя и возраст. Запишите эти данные в сессию. При заходе на другую страницу выведите эти данные на экран.