Пішімді бір 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'];
}
?>
Пайдаланушыдан тегі, аты және әкесінің атын сұраңыз. Пішімді жібергеннен кейін енгізілген деректерді экранға шығарыңыз.