在php中使用strlen进行表单验证

时间:2013-04-24 14:05:31

标签: php string validation strlen

我有以下验证:

    if (empty($errors) === true) { 
        if (strlen($_POST['Description']) > 250) { //strlen counts the number of bytes
            $errors[] = 'Your description must be less than 250 characters long';
        }
    }

但是如果用户输入的描述超过30个字符,则始终会显示此错误。我已经读过strlen返回字节数而不是字符串中的字符数。我已经尝试过mb_strlen来获取字符长度,但这也不起作用。我觉得我做的事情显然是愚蠢的,请尽可能帮忙。

1 个答案:

答案 0 :(得分:0)

老实说,我不知道任何使用8字节的字符编码。

我认为您“$ _POST ['Description']”可能不仅包含您想要的数据。

做一个

 var_dump($_POST['Description'])

看看它显示了什么。

旁注:

if (strlen(trim($_POST['Description'])) > 250)

阻止空格导致验证失败。

另请注意,您必须为mb_strlen指定编码,因为发送的字符编码可能与内部编码不同。