在php中验证一堆表单数据 - 是否有必要?

时间:2014-03-26 06:10:56

标签: php

我正在制作调查网站。我只想知道是否真的有必要使用isset!empty将每个POST数据验证到数据库中。我有大约30列,我发现它是多余的。

有没有比这更清洁的方式?

编辑:

如果我有可选字段怎么样?我怎么来的?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

PHP 5.5:

if(!empty(array_filter($_POST)))
{
   //there are non-empty fields in $_POST
}

PHP< 5.5:

$filtered = array_filter($_POST);
if(!empty($filtered))
{
   //there are non-empty fields in $_POST
}

这种差异是因为在PHP 5.5之前empty()无法接受非变量(例如表达式)

编辑:如果您有一些可选字段,那么您可以处理此问题,例如,有必填字段列表:

$array     = ['one'=>36, 'two'=>null, 'three'=>'data', 'four'=>0];
$mandatory = ['one', 'three'];

$data = array_intersect_key($array, array_flip($mandatory));
if(!empty($data))
{
   //all mandatory fields are not empty
}