Сесіі і формы ў 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. Справа ў тым, што ў гэтым
выпадку зручнасць у тым, што сама форма і код
яе апрацоўкі размяшчаюцца на адной старонцы.
Такое, вядома ж, зручна не заўсёды, але часам
бывае патрэбна.
На адной старонцы з дапамогай формы спытайце ў карыстальніка прозвішча, імя і ўзрост. Запішыце гэтыя дадзеныя ў сесію. Пры заходзе на другую старонку вывядзіце гэтыя дадзеныя на экран.