【问题标题】:PHP filter_input returns falsePHP filter_input 返回 false
【发布时间】:2014-04-07 19:07: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,为什么?

【问题讨论】:

  • FILTER_VALIDATE_INT - 这是对 INT 类型而非字符串的验证。我想你正在寻找FILTER_SANITIZE_STRING
  • 不。他传递了strlen() 的结果。
  • 正是..那么错误在哪里?
  • filter_input 的第二个参数应该是从$_GET (INPUT_GET) 获取的键的名称不是您正在过滤的值。你通过GET 发送什么?你怎么发送anyName
  • 为什么不使用 if(...) 检查长度是否在范围内?

标签: php function oop strlen


【解决方案1】:

我之前没用过filter_input,研究了一下,好像对邮件有用。但是,对于一个字符串,为什么不做这样的事情呢?

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 :-(
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 2018-10-30
    • 2011-09-10
    • 2012-08-27
    • 2013-01-25
    • 2012-09-02
    • 1970-01-01
    相关资源
    最近更新 更多