PHPda shaklni bitta faylda qayta ishlash
Oldingi darsda bizning shaklimiz bitta sahifada joylashgan edi,
boshqa sahifaga yuborilgan.
Aslida bu shart emas. Agar action atributini bo'sh qoldirsak
yoki butunlay olib tashlasak, shakl xuddi shu
sahifaga yuboriladi.
Bu qanday ishlaydi: sahifaga birinchi marta kirganimizda shaklni ma'lumotlar bilan to'ldiramiz va tugmani bosamiz. Shundan so'ng sahifa yangilanadi va uning kodi qayta bajariladi, lekin endi shakl ma'lumotlari bilan.
Keling, misolni ko'rib chiqaylik. Faraz qilaylik, bizda bitta faylda shakl va uning qayta ishlanishi mavjud:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
var_dump($_GET);
?>
Sahifaga birinchi marta kirganda var_dump funksiyasi
bo'sh massivni chiqaradi. Shakl yuborilgandan keyin esa
u shakl ma'lumotlarini chiqaradi. Ya'ni birinchi
marta $_GET bo'sh bo'ladi, ikkinchi marta esa
- shakl ma'lumotlarini o'z ichiga oladi.
Bu muammolarga olib kelishi mumkin. Faraz qilaylik, masalan, biz shaklga raqamlarni kiritamiz va bu raqamlar yig'indisini ekranda chiqarishni xohlaymiz:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
echo $_GET['test1'] + $_GET['test2'];
?>
Bunday holda, sahifaga birinchi marta kirganimizda
biz PHP xatolarini ko'ramiz, chunki
$_GET massivi bo'sh, biz esa uning
elementlariga murojaat qilyapmiz.
Bu yerda aytish kerakki, brauzeringizda xatolar paydo bo'lmasligi mumkin. Bunday holda PHP xatolari chiqarishi yoqilganligini tekshiring, shuningdek, sahifaga birinchi marta kirganingizga va manzil satrida shakl ma'lumotlari yo'qligiga ishonch hosil qiling.
Keling, muammoni tuzatamiz. Buning uchun shart qo'shamiz, unda shakl yuborilganligini tekshiramiz.
Masalan, $_GET ni
bo'sh emasligini tekshirish mumkin. Agar $_GET bo'sh bo'lmasa -
shakl yuborilgan va yig'indini bajarish mumkin.
Aks holda biz hali
sahifaga birinchi marta kirgan bo'lamiz va yig'indi bajarilmaydi.
Mana, tuzatilgan kod:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
if (!empty($_GET)) {
echo $_GET['test1'] + $_GET['test2'];
}
?>
Foydalanuvchidan familiyasi, ismi va otasining ismini so'rang. Shakl yuborilgandan so'ng, kiritilgan ma'lumotlarni ekranda chiqaring.