更短的POST验证方式?

时间:2011-02-28 01:49:22

标签: php

我总是进行POST的检查验证,有时候它太乱了。保持它变短和整洁的最佳方法是什么?

示例:

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

4 个答案:

答案 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_getfilter_postfilter_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.

相关问题