1

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

下面的代码正确吗?我想完成所有已发布的字段都不是空的,这意味着表单中的字段被提交为空白。

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

2 回答 2

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()返回 TRUE 为 0 或 0.0,这通常是不受欢迎的行为。例如,如果您的表格问我孩子的年龄,其中一个是最近才出生的,我会填写0empty()不会接受。

对于您指定的情况,empty()应该trim()就足够了,但您应该注意它的行为,以便将来进行任何验证!

于 2013-06-30T09:39:20.220 回答
0
if ($_POST["firstname"]==""||$_POST["lastname"]==""||$_POST["cellphone"]==""||$_POST["email"]=="")
{
    header("Location: http://www.domain.com/error.php?ec=empty");
    exit();
}

试试这个

于 2013-06-30T10:45:13.820 回答