PHP:检查任何发布的变量是否为空 - 表单:所有必填字段

FFi*_*ish 32 php forms post field

是否有一个更简单的功能:

if (isset($_POST['Submit'])) {
    if ($_POST['login'] == "" || $_POST['password'] == "" || $_POST['confirm'] == "" || $_POST['name'] == "" || $_POST['phone'] == "" || $_POST['email'] == "") {
        echo "error: all fields are required";
    } else {
        echo "proceed...";
    }
}
Run Code Online (Sandbox Code Playgroud)

Har*_*83- 68

像这样的东西:

// Required field names
$required = array('login', 'password', 'confirm', 'name', 'phone', 'email');

// Loop over field names, make sure each one exists and is not empty
$error = false;
foreach($required as $field) {
  if (empty($_POST[$field])) {
    $error = true;
  }
}

if ($error) {
  echo "All fields are required.";
} else {
  echo "Proceed...";
}
Run Code Online (Sandbox Code Playgroud)

  • empty()检查存在和非假值(null,false,0,空字符串). (9认同)
  • @NimitzE.不必要.`$ error`设置为false,仅当字段为空时才更改.哪个领域抛出它并不重要,因为一旦抛出它就抛出它.即如果`name`为空,它将运行`false,false,false,true,false,false`但由于`if`中没有'else`,`$ error`现在是'true`. (6认同)
  • 我再推荐一个isSet($ _ POST [$ field]).不过,这是一个很好的解决方案. (3认同)
  • 这个“ foreach”将仅验证“ array”的最后一个值(即电子邮件),因为它覆盖了先前的“ $ error”验证。 (2认同)
  • 如果 0 是必填字段的可接受值,请小心。正如@Harold1983- 提到的,这些在PHP 中被视为空。最好使用 isset (2认同)

Nah*_*kht 5

if( isset( $_POST['login'] ) &&  strlen( $_POST['login'] ))
{
  // valid $_POST['login'] is set and its value is greater than zero
}
else
{
  //error either $_POST['login'] is not set or $_POST['login'] is empty form field
}
Run Code Online (Sandbox Code Playgroud)