这是正确使用数组和isset吗?

时间:2012-08-14 23:03:20

标签: php forms validation post submit

所以我得到了这段代码,其中一部分是表格,所有字段都是绝对必需的。

我无法找到明确的文档来满足我验证所有内容的需求。

我会做这样的事吗?

$foo = $_POST['foo'];
$bar = $_POST['bar'];
$lorem = $_POST['lorem'];
$ipsum = $_POST['ipsum'];

$isSet = array($foo, $bar, $lorem, $ipsum);

if(isset($isSet)) { /* Do the stuff */ }

还是有更好的方法?我真的不想做

if(isset($foo) && isset($bar) && isset($lorem)........ 

因为我有大约12个需要的字段

2 个答案:

答案 0 :(得分:5)

你可以这样做:

if (isset($foo, $bar, $lorem, $ipsum)) {.....}

为您节省一步。

http://php.net/manual/en/function.isset.php

答案 1 :(得分:2)

请记住,如果您有一个空字符串,则isset将返回true。所以,技术上

isset($_POST['foo']) 
如果使用空值传入foo,

将返回true:

foo=&bar=&...etc.

另外,

isset(array())

返回true;

如果“”不是其中一个变量的有效值,则需要执行以下操作:

$requiredFields = array('foo', 'bar', 'lorem', 'ipsum');

$allValid = true;

foreach ($requireFields => $fieldName) {
    if (isset($_POST[$fieldName]) && $_POST[$fieldName] != "") {
        $allValid = $allValid && true;
    } else {
        $allValid = $allValid && false;
    }
}

if ($allValid) {
    //...success...
} else {
    //...failed...
}

您基本上检查变量是否已通过,以及变量未设置为“”。

希望有所帮助。