Более короткий способ проверки POST?

Я всегда проверяю проверку POST, когда-то он становится слишком грязным и длинным. Каков наилучший способ держать его короче и аккуратно?

Пример:

if (isset($_POST['albumName']) && trim($_POST['albumName']) != "" && isset($_POST['slugName']) && $_POST['slugName'] != "" && is_numeric($_POST['PhotoCatID'])) { //All good } 

Related of "Более короткий способ проверки POST?"

Стандартное расширение фильтра может иметь то, что вы ищете, в частности filter_input :

 $albumName = filter_input(INPUT_POST, 'albumName', FILTER_SANITIZE_STRIPPED); $slugNamed = filter_input(INPUT_POST, 'slugName', FILTER_SANITIZE_STRIPPED); $PhotoCatId = filter_input(INPUT_POST, 'PhotoCatId', FILTER_SANITIZE_NUMBER_INT); 

(Я лично закончил писать обертки с именами filter_get , filter_post и filter_request чтобы сделать строки немного короче …)

Если вы хотите сократить свой дублирующий код и улучшить свою логику, посмотрите на создание класса проверки, который позволит вам централизовать всю логику проверки.

Множество ресурсов по классам проверки:

Также у вас встроенное встроенное расширение FILTER, которое позволяет вам обезопасить и проверять данные.

Первый. Пишите вертикально, а не горизонтально.
Если у вас есть несколько утверждений, напишите их под другим, а не в одной огромной строке

Далее, некоторые проверки могут быть применены в цикле:

 foreach ($_POST as $key => $value) $_POST[$key] = trim($value); 

Затем некоторые сокращения могут быть сокращены.

 $err=array(); if (empty($_POST['albumName'])) $err[]= "Album name is empty"; if (empty($_POST['slugName'])) $err[]= "Slug name is empty"; if (!is_numeric($_POST['PhotoCatID'])) $err[]= "Wrong parameters"; if(!$err) { //All good } 

Остальное зависит от ваших потребностей.

Для идентификаторов вы можете сэкономить много неприятностей и просто придумать их для int

 $id = (int)$_POST['id']; 

Если значение недействительно, $ id будет установлен в 0.