php检查表单是否使用null字段提交

时间:2011-09-26 00:57:55

标签: php submit isset

正如标题所说,我正在试图弄清楚如何在单击提交按钮后检查表单中是否有任何空条目。

if(isset($_POST['submit']) && ($selected == ''|| $text == '' || $email == ''))
{
  // *do things*
}
else{
  //*more things*
}

这是不正确的?

2 个答案:

答案 0 :(得分:2)

您将以与处理提交按钮相同的方式引用它们。

即:$_POST['input_name']

从那里使用适当的函数检查它:isset()empty()is_null()(虽然表单变量很少见null

我也鼓励您阅读PHP external variables

答案 1 :(得分:2)

你可以做的是遍历$ _POST变量。排除那些你不感兴趣的人,并做出类似的事情:

$allIsOk = true;
foreach ($_POST as $index => $value) {
  if (strlen($value)<1) {
    $allIsOk = false;      
  }
}

...然后你在$ allIsOk上做出选择。

这种方法有两个原因:

  1. 根据上面的建议,你需要结合检查,因为空() 将返回true为0或甚至“0”并可能导致headbanging 问题。
  2. 使用此方法,您可以添加参数 制作一个巨大的if语句
  3. 当然,这只是一个想法。检查文档总是明智的。此外,您可以使用array_walk调用替换foreach循环以使事情变得更加漂亮(特别是从PHP 5.3开始)。 ; - )

    祝你好运!

    PS此外,为了确定您的脚本是否已被POST操作调用,而不是考虑提交元素,我建议您使用$ _SERVER全局。 http://php.net/manual/en/reserved.variables.server.php只需检查'REQUEST_METHOD'参数即可。

    所以,你可能有:

    if ('POST' == $_SERVER['REQUEST_METHOD']) {
    
      // It's ok for these to be null - or empty
      $exclude = array('submit', 'other_param');
      $allIsOk = true;
      foreach ($_POST as $index => $value) {
        if (!in_array($index, $exclude) && strlen($value)<1) {
          $allIsOk = false;      
        }
      }
    }
    
    if ($allIsOk) {
      // Do Something
    } else {
      // Do Something Else
    }