Formanin bir faylda PHP-de emal edilmesi
Evvelki dersde bizim formamiz bir sehifede yerlisdirilmisdi,
amma basqa birine gonderilirdi.
Esliinde bu mecburi deyil. Əgər
atributu action bos buraxarsinizsa ve ya umumen
onu silerseniz, forma eyni sehifeye gonderilecek.
Bu necə işləyəcək: sehifeye ilk daxil olduqda biz formani melumatlarla doldurub duymeni basacagiq. Bundan sonra sehife yenilenecek ve onun kodu yeniden, amma artiq forma melumatlari ile icra olunacaq.
Gelin misala baxaq. Tutaq ki, bizim bir faylda forma ve onun emal edilmesi var:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
var_dump($_GET);
?>
Sehifeye ilk daxil olduqda var_dump funksiyasi
bos massivi cixardacaq. Forma gonderildikden sonra ise
o artiq forma melumatlarini cixaracaq. Yəni ilk
defə $_GET bos olacaq, ikinci defə ise
- forma melumatlarini ehtiva edecek.
Bu problemlere sebeb ola biler. Tutaq ki, misal ucun, biz forma ile reqemler daxil edeceyik ve bu reqemlerin ceminin ekrana cixarilmasini isteyirik:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
echo $_GET['test1'] + $_GET['test2'];
?>
Bu halda sehifeye ilk daxil olduqda
biz PHP xetalarini goreceyik, ona gore ki,
$_GET massivi bosdur, ama biz onun
elementlerine muraciet edirik.
Burada demeliydik ki, sizde xetalar browserde gorunmeye biler. Bu halda yoxlayin ki, sizde PHP xetalarinin cixarilmasi aktivdir, hemcinin emin olun ki, siz sehifeye ilk defə daxil olursuz ve unvan setrinde forma melumatlari yoxdur.
Gelin problemi aradan qaldiraq. Bunun ucun sert elave edek, icinde formanin gonderildiyini yoxlayacagiq.
Misal ucun, $_GET-i
bos olmamasi ucun yoxlamaq olar. Əgər $_GET bos deyil -
demeli forma gonderilib ve cemlemeni yerine yetirmek olar.
Əks halda biz hele
sehifeye ilk defə daxil oluruq ve cemleme yerine yetirilmeyecek.
Beliklikle, here duzeldilmis kod:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
if (!empty($_GET)) {
echo $_GET['test1'] + $_GET['test2'];
}
?>
İstifadəçidən soyadı, adı ve atasının adını soruşun. Forma gonderildikden sonra daxil edilmiş melumatları ekranda cixardin.