1

我正在尝试验证我的注册表单,但其中一项验证不起作用。如果名字超过 20 个字符,我想回显一条错误消息。我正在使用代码

} else if($_POST["mem_first_name"] >20) {
        $errors[] = 'Sorry but your First name is limited to 20 Characters each';
}

但是,如果输入超过 20 个字符,则不会显示错误。但是,如果我使用相同的代码但将其更改为小于这样

} else if($_POST["mem_first_name"] <20) {
        $errors[] = 'Sorry but your First name is limited to 20 Characters each';
}

然后它工作,有一个简单的修复?

4

4 回答 4

2
if(strlen($_POST["mem_first_name"]) > 20)
于 2013-03-17T17:00:07.183 回答
2

使用strlen()函数

} else if(strlen($_POST["mem_first_name"]) >20) {
        $errors[] = 'Sorry but your First name is limited to 20 Characters each';
}
于 2013-03-17T17:00:41.253 回答
1

使用strlen() 函数来计算字符串怎么样?它是计算IMO字符数的稳定且适当的方法

} else if(strlen($_POST["mem_first_name"]) >20) {
        $errors[] = 'Sorry but your First name is limited to 20 Characters each';
}
于 2013-03-17T16:59:48.393 回答
1

您必须使用strlen()函数进行字符串长度检查。另外,请注意,如果您需要多字节编码支持,您应该切换到使用mb_strlen().

var_dump(strlen('bär'));            // int(4) - byte length
var_dump(mb_strlen('bär', 'utf8')); // int(3) - character length
于 2013-03-17T17:16:01.087 回答