Përpunimi i Formës në një Skedar të Vetëm PHP
Në mësimin e mëparshëm, forma jonë ishte vendosur
në një faqe, dhe u dërgua në një tjetër.
Në fakt, kjo nuk është e domosdoshme. Nëse e lini
atributin action bosh ose e hiqni fare,
forma do të dërgohet në të njëjtën faqe.
Si do të funksionojë: në hyrjen e parë në faqe, ne do të plotësojmë formën me të dhëna dhe do të klikojmë në butonin. Pas kësaj, faqja do të rifreskohet dhe kodi i saj do të ekzekutohet përsëri, por tashmë me të dhënat e formës.
Le ta shohim me një shembull. Le të themi se kemi në një skedar një formë dhe përpunimin e saj:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
var_dump($_GET);
?>
Në hyrjen e parë në faqe, funksioni var_dump
do të shfaqë një array bosh. Por pas dërgimit të formës
ai do të shfaqë të dhënat e formës. Kjo do të thotë, herën e parë
$_GET do të jetë bosh, kurse herën e dytë
- do të përmbajë të dhënat e formës.
Kjo mund të shkaktojë probleme. Le të themi, për shembull, se në formë do të vendosim numra dhe dëshirojmë të shfaqim shumën e këtyre numrave në ekran:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
echo $_GET['test1'] + $_GET['test2'];
?>
Në këtë rast, në hyrjen e parë në faqe
ne do të shohim gabime PHP, të shkaktuara nga fakti se
array $_GET është bosh, kurse ne i qasemi
elementeve të tij.
Këtu duhet thënë se ju gabimet mund të mos shfaqen në shfletues. Në këtë rast kontrolloni nëse keni aktivizuar shfaqjen e gabimeve PHP, dhe gjithashtu sigurohuni që keni bërë hyrjen e parë në faqe dhe në shiritin e adresës nuk ka të dhëna forme.
Le ta rregullojmë problemin. Për këtë, le të shtojmë një kusht, në të cilin do të kontrollojmë nëse forma është dërguar.
Për shembull, mund të kontrollohet $_GET për
jo-boshllëk. Nëse $_GET nuk është bosh -
atëherë forma është dërguar dhe mund të kryhet
mbledhja. Në rastin e kundërt, kemi akoma
hyrjen e parë në faqe dhe mbledhja nuk do të kryhet.
Ja, kodi i korrigjuar:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
if (!empty($_GET)) {
echo $_GET['test1'] + $_GET['test2'];
}
?>
Pyetni përdoruesin për mbiemrin, emrin dhe patronimin. Pas dërgimit të formës, shfaqni në ekran të dhënat e futura.