TLDR: if (!empty($_POST['name']) and is_string($_POST['name']) )
kazdopadne by ta validacia mala byt oddelena.
to ze vstup nie je typu aky ocakavas je omnoho zavaznejsi problem. osobne riesim najprv integritu samotneho vstupu a az potom sa pustam do konkretnejsich validacii, napr. ci je string prazdny alebo cislo je mensie ako devatstopatdesiat.
cize mne by sa to pacilo napr takto. v realnom svete by to samozrejme bolo zabalene do objektov, ale pre vysvetlenie toho co chcem to hadam staci
Kód: Vybrať všetko
class InvalidInputException extends Exception{}
class FormValidationException extends Exception{}
if(!isset($_POST['name'])){
throw new InvalidInputException('name');
}
if(!is_string($_POST['name'])){
throw new InvalidInputException('name');
}
/* validacia prebehla, data su take ake ocakavame a mozme tomu verit */
if(empty($_POST['name'])){
throw new FormValidationException('name', 'Text je prilis prazdny.');
}
if($_POST['name'] == 'Osama bin Laden'){
throw new FormValidationException('name', 'Barack Obama');
}
co tym chcem naznacit je to, ze ak tato validacia spadne na InvalidInputException, je to fatalna chyba, ktora v normalnom pripade nenastane (ak sa nejakym sposobom nemodifikoval raw request) a odchytavat by sa mala iba za ucelom logovania. ak to vsak spadne na FormValidationException, je to normalny pripad (uzivatel nevyplnil pole) a vyssie sa da odchytit a spracovat nejakou chybovou hlaskou na gui.