Обраштање форме у једној фајлу PHP

У претходној лекцији наша форма је била постављена на једној страници, а слата на другу. У ствари то није неопходно. Ако оставите атрибут action празан или га потпуно уклоните, онда ће форма бити послата на исту страницу.

Како ће то радити: при првом доласку на страницу попунићемо форму подацима и кликнућемо на дугме. Након тога страница ће се освежити и њен код ће се поново извршити, али сада са подацима форме.

Хајде да погледамо на примеру. Нека имамо у једном фајлу форму и њену обраду:

form.php<form action="" method="GET">
  <input name="test1">
  <input name="test2">
  <input type="submit">
</form>

<?php
  var_dump($_GET);
?>

При првом доласку на страницу функција var_dump исписаће празан низ. А после слања форме исписаће већ податке форме. То значи први пут $_GET ће бити празан, а други пут - садржаће податке форме.

Ово може довести до проблема. Рецимо, на пример, да у форму уносимо бројеве и желимо да испишемо збир тих бројева на екран:

html<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 није празан - онда је форма послата и можемо извршити сабирање. У супротном смо још на првом доласку на страницу и сабирање неће бити извршено. Дакле, ево исправљеног кода:

html<form action="" method="GET">
  <input name="test1">
  <input name="test2">
  <input type="submit">
</form>

<?php
  if (!empty($_GET)) {
    echo $_GET['test1'] + $_GET['test2'];
  }
?>
Задание 1

Питајте корисника за презиме, име и име оца. Након слања форме испишите на екран унесене податке.