Обраштање форме у једној фајлу PHP
У претходној лекцији наша форма је била постављена
на једној страници, а слата на другу.
У ствари то није неопходно. Ако оставите
атрибут action празан или га потпуно уклоните,
онда ће форма бити послата на исту
страницу.
Како ће то радити: при првом доласку на страницу попунићемо форму подацима и кликнућемо на дугме. Након тога страница ће се освежити и њен код ће се поново извршити, али сада са подацима форме.
Хајде да погледамо на примеру. Нека имамо у једном фајлу форму и њену обраду:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
var_dump($_GET);
?>
При првом доласку на страницу функција var_dump
исписаће празан низ. А после слања форме
исписаће већ податке форме. То значи први
пут $_GET ће бити празан, а други пут
- садржаће податке форме.
Ово може довести до проблема. Рецимо, на пример, да у форму уносимо бројеве и желимо да испишемо збир тих бројева на екран:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
echo $_GET['test1'] + $_GET['test2'];
?>
У овом случају при првом доласку на страницу
видећемо грешке PHP, повезане са тим што је
низ $_GET празан, а ми приступамо
његовим елементима.
Овде треба рећи да код вас грешке можда и неће да се појаве у прегледачу. У том случају проверите да ли је укључено исписивање грешака PHP, као и да ли сте први пут на страници и да ли у адресној траци нема података форме.
Хајде да исправимо проблем. За то ћемо додати услов, у којем ћемо проверавати да ли је форма послата.
На пример, можемо проверавати $_GET на
испуњеност. Ако $_GET није празан -
онда је форма послата и можемо извршити
сабирање. У супротном смо још на
првом доласку на страницу и сабирање неће бити извршено.
Дакле, ево исправљеног кода:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
if (!empty($_GET)) {
echo $_GET['test1'] + $_GET['test2'];
}
?>
Питајте корисника за презиме, име и име оца. Након слања форме испишите на екран унесене податке.