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'];
}
?>
Колдонуучудан фамилиясын, атын жана атасынын атын сураңыз. Форма жиберилгенден кийин киргизилген маалыматтарды экранга чыгарыңыз.