Uchakataji wa Fomu katika Faili Moja ya PHP
Katika somo lililopita, fomu yetu ilikuwa kwenye
ukurusa mmoja, na ilitumwa kwenye ukurusa mwingine.
Kwa kweli hii si lazima. Kwa kuacha
kiambatisho action tupu au kuiondoa
kabisa, fomu itatumwa kwenye ukurusa
huo huo.
Itakavyofanya kazi: mara ya kwanza kuingia kwenye ukurusa tutajaza fomu na data na kubonyeza kitufe. Baada ya hapo ukurusa utasasishwa na msimbo wake utatekelezwa tena, lakini kwa data ya fomu.
Wacha tuangalie kwa mfano. Hebu tuseme kwenye faili moja kuna fomu na uchakataji wake:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
var_dump($_GET);
?>
Mara ya kwanza kuingia kwenye ukurusa kitendaji var_dump
kitaonyesha safu (array) tupu. Na baada ya kutumuma fomu
itaonyesha data ya fomu. Yaani mara ya kwanza
$_GET itakuwa tupu, na mara ya pili
- itakuwa na data ya fomu.
Hii inaweza kusababisha matatizo. Hebu tuseme, kwa mfano, tutaingiza nambari kwenye fomu na tunataka kuonyesha jumla ya nambari hizo kwenye skrini:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
echo $_GET['test1'] + $_GET['test2'];
?>
Katika hali hii, mara ya kwanza kuingia kwenye ukurusa
tutaona makosa ya PHP, yanayohusiana na ukweli kwamba
safu $_GET iko tupu, na sisi tukiwania
kwa vipengele vyake.
Hapa inapaswa kusemwa kuwa, makosa yanaweza yasionekani kwenye kivinjari. Katika hali hii hakikisha kuwa umewasha uonyeshaji wa makosa ya PHP, na pia uhakikishe kuwa wewe ni mgeni wa kwanza kwenye ukurusa na kwenye mstari wa anwani hakuna data ya fomu.
Wacha tusahihisha tatizo. Kwa hili tutaongeza sharti, ambacho tutakachokuwa tukihakiki kuwa fomu ilitumwa.
Kwa mfano, inaweza kuhakiki $_GET kuwa
si tupu. Kama $_GET si tupu -
basi fomu ilitumwa na inawezekana kufanya
ujumlishaji. Vinginevyo bado
tuko kwenye mgeni wa kwanza kwenye ukurusa na ujumlishaji hautafanyika
Hivyo, hapa kuna msimbo uliosahihishwa:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
if (!empty($_GET)) {
echo $_GET['test1'] + $_GET['test2'];
}
?>
Uliza mtumiaji jina la ukoo, jina la kwanza na jina la kati. Baada ya kutumwa kwa fomu, onyesha kwenye skrini data iliyoingizwa.