Сесије и форме у 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. Ствар је у томе што је у овом
случају погодно то што сама форма и код
њене обраде се налазе на једној страници.
Такво, наравно, није увек погодно, али понекад
буде потребно.
На једној страници уз помоћ форме питајте корисника за презиме, име и године. Упишите те податке у сесију. При одласку на другу страницу испишите те податке на екран.