Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

| Rubrika Php / mysql

Diskusia k článku

Overovanie a kontrola formulárov v PHPZobraziť článok

Žiadne komentáre.

Naspäť naspäť

Pridať komentár

Koľko je na ruke prstov?

Náhľad článku

Overovanie a kontrola formulárov v PHP

S problematikou overovania korektného vyplnenia formulárov sa každý určite stretol, a kto nie, ten sa ešte určite stretne. Možností je viacero, podľa môjho názoru je ideálne používať na základné overovanie Javascript (prípadne v komibnácií s Ajaxom), ale určite formulár poistiť aj kontrolou na úrovni PHP – pre takých užívateľov, ktorí Javascript nemajú zapnutý.
V prípade overovania formulárov prostredníctvom PHP je dobré mať k dispozícií všestranne použiteľnú funkciu, aby sme sa vyhli nekonečnému vypisovaniu podmienok. Funkcia, resp. trieda by mohla vyzerať takto:

class userInput {
 
        var $mandatoryFields;
 
        public function checkMandatory() {
 
                foreach($this->mandatoryFields as $key => $value) {
                        if(empty($_POST[$key])) {
                                $emptyFields[] = $value;
                        }
 
                }
 
                return $emptyFields;
 
        }
 
 
 
}

Metóda checkMandatory() prejde pole, s definovanými povinným položkami a porovná ho s hodnotami v $_POST poľa, získaného z odoslaného formulára. Pokiaľ je nejaká z povinných položiek prázdna, metóda priradí názov tejto položky do poľa, ktoré nakoniec vráti ako výstup.
Samotné použitie metódy ráta samozrejme s manuálnym definovaním povinných položiek.

// inicializujeme triedu
require_once dirname(__FILE__) . '/class_input.php';
$uI = new userInput;
 
//definujeme povinné položky
$uI->mandatoryFields = array(
   'povinna_polozka_1'=>'Názov položky',
   'povinna_polozka_2'=>'Názov položky'
);
 
//inicializujeme pole, do ktorého bude uložený výstup funkcie
$controlForm = array();
$controlForm = $uI->checkMandatory();
 
// pokiaľ je veľkosť poľa nulová, formulár bol vyplnený správne
if(sizeof($controlForm)==0) {
   // spracovanie formuláru
} else {
  // neboli vyplnené všetky povinné položky
  echo  implode(', ',$controlForm); // vráti názvy nevyplnených polí
}

Takáto trieda rozhodne uľahčí prácu s kontrolou formulárov a celé sa to samozrejme dá podstatne viac zautomatizovať – v prípade automatického generovania formulárov z MySQL tabuľky, sa dá pole s definovanými položkami generovať dynamicky na základe nejakého príznaku z databázy. Možností je veľa.

RSS