0

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

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

我会做这样的事情吗?

$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 个必填字段

4

2 回答 2

5

你可以做:

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

为您节省一步。

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

于 2012-08-14T23:06:19.030 回答
2

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

isset($_POST['foo']) 

如果 foo 使用空白值传入,则返回 true:

foo=&bar=&...etc.

还,

isset(array())

返回真;

如果“”不是这些变量之一的有效值,您将需要执行以下操作:

$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...
}

您基本上检查变量是否已传递,并且变量未设置为“”。

希望有帮助。

于 2012-08-14T23:26:21.333 回答