Я всегда проверяю проверку POST, когда-то он становится слишком грязным и длинным. Каков наилучший способ держать его короче и аккуратно?
Пример:
if (isset($_POST['albumName']) && trim($_POST['albumName']) != "" && isset($_POST['slugName']) && $_POST['slugName'] != "" && is_numeric($_POST['PhotoCatID'])) { //All good }
Стандартное расширение фильтра может иметь то, что вы ищете, в частности 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.