PHP测试POST表格中的POST是否为空

时间:2013-06-30 09:31:48

标签: php

我有一个由网页上的用户/访问者填写的表格。我已经尽可能地添加了JavaScript以保证安全,但是真的想在PHP方面检查$ _POSTs中是否存在DATA。

以下CODE是否正确?我想要完成没有POSTed字段是EMPTY,这意味着FORM中的字段是以BLANK的形式提交的。

if (empty($_POST["firstname"]) || empty($_POST["lastname"]) || empty($_POST["cellphone"]) || empty($_POST["email"]) {
    header("Location: http://www.domain.com/error.php?ec=empty");
    exit();
}

2 个答案:

答案 0 :(得分:2)

当盲目使用并且单独使用时,Empty不是一个特别好的验证工具。

如果符合以下条件,则从PHP手册页返回true:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

关于您使用过的变量,可能的值会按预期传递但是我可以在表单字段中放入一些空格(“”)并让它通过。在对trim($_POST["lastname"])进行检查之前,您需要empty()和其他人。

将来要考虑的另一件事是empty()为0或0.0返回TRUE,这通常是不良行为。例如,如果你的表格问我孩子的年龄,而其中一个孩子刚刚出生,我会加入0empty()不接受。

对于您指定的情况,empty()trim()应该足够了,但您应该知道它在将来验证时的行为!

答案 1 :(得分:0)

if ($_POST["firstname"]==""||$_POST["lastname"]==""||$_POST["cellphone"]==""||$_POST["email"]=="")
{
    header("Location: http://www.domain.com/error.php?ec=empty");
    exit();
}

试试这个