我有一个由网页上的用户/访问者填写的表格。我已经尽可能地添加了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();
}
答案 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,这通常是不良行为。例如,如果你的表格问我孩子的年龄,而其中一个孩子刚刚出生,我会加入0
而empty()
不接受。
对于您指定的情况,empty()
和trim()
应该足够了,但您应该知道它在将来验证时的行为!
答案 1 :(得分:0)
if ($_POST["firstname"]==""||$_POST["lastname"]==""||$_POST["cellphone"]==""||$_POST["email"]=="")
{
header("Location: http://www.domain.com/error.php?ec=empty");
exit();
}
试试这个