使用PHP检查表单元素是否已发送但为空


Check if form element sent but empty with PHP

我想把两件事分开。

如果发送了$_POST["something"],但为空。

如果未发送$_POST["something"]

有办法吗?

您可能很想使用empty(),但如果您可能的值包括0,它会让您大吃一惊。最好使用以下内容:

if (isset($_POST['something'])) {
   // the form field was sent ...
   if ($_POST['something'] === '') {
      // the form field was sent, but is empty
   }
}

这是有效的,因为来自_GET/POST/_REQUEST超全局的所有数据都是字符串,无论它是否是数字。

您需要使用isset()

if (isset($_POST["something"])){
    echo "The Post Variable 'something' was posted";
    if (strlen($_POST["something"])==0)
        echo "The Post Variable is blank";
    else
        echo "The Post Variable Contains ".$_POST['something'];
}

看向issetempty

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

http://php.net/manual/fr/function.empty.php

编辑:下面的评论是正确的。空应用于空字符串,而不是数值、浮点值或字符串中的零​​.然而,如果您需要接受这些有效值,这里有一个函数:

function is_blank($value) {
    return empty($value) && !is_numeric($value);
}

我使用php函数isset()来检查是否发送了POST

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

if($_POST["something"])如果存在这样的字段,将返回true

如果$_POST["something"]=="将执行其余