| Rubrika Php / mysql
Pridať komentár
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.

naspäť
