如何验证字段是否不为空

时间:2018-10-18 14:45:54

标签: php forms validation

我将如何验证字段,因此如果其值为空或长度小于或等于10,它将引发错误。 但是,只有当长度为1或更大时,它才会验证是否为空。

需要帮助以使其生效

if (empty($_POST["comment"]) && $_POST["comment"] <= 10) {
    $comment_err = "Please send a message more than 10 characters";
}
else {
    $comment = sanitize($_POST["comment"]);
}

3 个答案:

答案 0 :(得分:1)

您的问题不够准确,但我认为您要查找的是:

  • 引发错误如果变量为空
  • 如果变量长度小于10,则抛出错误

因此,在 if 语句中使用 OR(||),然后使用strlen()获得可变长度( Funk Forty Niner的评论):

if(empty($_POST["comment"]) || strlen($_POST["comment"]) <= 10){
   $comment_err = "Please send a message more than 10 characters";
}
else{
   $comment = sanitize($_POST["comment"]);
}

答案 1 :(得分:1)

只需检查长度即可。如果长度大于10,则肯定不是空的,因此您无需明确检查。

if(isset($_POST["comment"]) && strlen($_POST["comment"]) > 10){

isset只是为了防止未定义的索引警告(如果该注释键不存在)。

(顺便说一下,这会反转if和else块,因为它检查的是正确的数据而不是错误情况。)

这是partially answered in the comments,但是Funk Forty Niner如此慷慨,他免费赠送了自己的智慧,没有期望获得虚假的互联网积分,当他返回时,他所要求的只是某种尊重回家。

答案 2 :(得分:1)

您的代码中有两个问题:

  1. 首先,您的条件不正确,不能同时有一个空索引并检查其大小。所以你应该有empty($_POST["comment"]) || $_POST["comment"] <= 10
  2. 您也无法通过检查整数值来检查字符串的长度,就像@Funk Forty Niner在评论中告诉的那样,您必须使用strlen()函数http://php.net/manual/en/function.strlen.php

因此您的最终代码将是:

if(empty($_POST["comment"]) || strlen($_POST["comment"]) <= 10){
 $comment_err = "Please send a message more than 10 characters";
}
else{
 $comment = sanitize($_POST["comment"]);
}