我总是进行POST的检查验证,有时候它太乱了。保持它变短和整洁的最佳方法是什么?
示例:
if (isset($_POST['albumName']) && trim($_POST['albumName']) != "" && isset($_POST['slugName']) && $_POST['slugName'] != "" && is_numeric($_POST['PhotoCatID'])) {
//All good
}
答案 0 :(得分:3)
standard Filter extension可能包含您正在寻找的内容,尤其是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
的包装,只是为了让线条更短......“
答案 1 :(得分:1)
如果您希望减少重复代码并改进逻辑,请查看创建验证类,以便集中所有验证逻辑。
验证类的大量资源:
此外,您还拥有PHP内置的FILTER扩展,它允许您清理和验证数据。
答案 2 :(得分:0)
首先。垂直书写,而不是水平书写 如果您有多个陈述,请将其写在另一个陈述下,而不是在一个巨大的行中
接下来,可以在循环中应用一些验证:
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
}
其余的取决于您的需求。
答案 3 :(得分:0)
对于ID,您可以省去很多麻烦,只需将它们强制转换为int
$id = (int)$_POST['id'];
如果该值无效,则$ id将设置为0.