Обработка на форма во една 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 за
неиспразност. Ако $_GET не е празна -
тогаш формата е испратена и може да се изврши
сумирање. Во спротивно сè уште сме
на првото влегување на страницата и сумирањето нема да се изврши.
Еве го поправениот код:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
if (!empty($_GET)) {
echo $_GET['test1'] + $_GET['test2'];
}
?>
Прашајте го корисникот за презиме, име и прекар. После испраќањето на формата испечатете ги на екранот внесените податоци.