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(…)检查长度是否在范围内?