Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP filter_输入返回false_Php_Function_Oop_Strlen - Fatal编程技术网

PHP filter_输入返回false

PHP filter_输入返回false,php,function,oop,strlen,Php,Function,Oop,Strlen,我将此用于用户名验证: public function check_length($username) { $username = strlen($username); $value = filter_input(INPUT_GET, $username, FILTER_VALIDATE_INT, array("options" => array("min_range" => 2, "max_range" => 30)));

我将此用于用户名验证:

public function check_length($username) {   
        $username = strlen($username);
        $value = filter_input(INPUT_GET, $username, FILTER_VALIDATE_INT, array("options" => array("min_range" => 2, "max_range" => 30)));
        if ($value) {
            return TRUE;
        }
        else {
            return FALSE;
        }
    }

当我输入:“anyName”时,函数返回FALSE,为什么?

我以前没有使用过
过滤器\u输入
,我研究过它,它似乎对电子邮件很有用。但是,对于字符串,为什么不做这样的事情呢

public function check_length($username) {   
    $username = strlen($username);
    if ($username < 2 || $username >30) {
        return false; // If username isn't valid
    }
    else {
        return true;
    }
}

if(check_length($username)){
    // We're good to go! :-)
}else{
    // Validation criteria not met :-(
}
公共函数检查长度($username){
$username=strlen($username);
如果($username<2 | |$username>30){
返回false;//如果用户名无效
}
否则{
返回true;
}
}
如果(检查长度($username)){
//我们可以走了!:-)
}否则{
//未满足验证标准:-(
}

FILTER\u VALIDATE\u INT
-这是对INT类型的验证,而不是字符串。我想您正在寻找
FILTER\u SANITIZE\u string
。不。他传递了
strlen()
的结果。没错。。那么错误在哪里呢?
FILTER\u input
的第二个参数应该是从
$\u get
获取的密钥的名称(
INPUT\u GET
),而不是您正在筛选的值。您通过
GET
发送什么?您如何发送
anyName
?为什么不使用if(…)检查长度是否在范围内?