Tvorba web stránok s administráciou, internetové obchody

Overenie formulára v PHP Tlačiť E-mail

 

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, 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.