# Сессии и формы в 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`. Дело в том, что в данном случае удобство в том, что сама форма и код ее обработки размещаются на одной странице. Такое, конечно же, удобно не всегда, но иногда бывает нужно.

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

←→
↑