Jquery验证器与远程的怪异行为

时间:2014-01-23 15:35:56

标签: javascript php jquery jquery-validate

我有一个使用jQuery验证器的注册表单:

$('reg_form').validate({
  ignore:"",
  rules : {
    user_name : {
      required :1,
      minlength :8,
      remote :"check_user_name.php"
    },
    password : {
      required :1,
      minlength :8,
    },
    firstname : {
      required :1,
    },
    lastname : {
      required :1,
    },
    email : {
      required :1,
    },
  }
});

它工作得很好,但问题很遥远。它永远不会检测用户名是否已经在数据库中。

远程代码如下:

$uname = $_GET["user_name"];

$UserObj = new User();
echo $UserObj->checkUniqueUser($uname);

checkUniqueUser()将检查是否存在具有相同名称的用户,否则将返回false,否则为true。

我从请求监视中获取了URL

http://project.localhost/check_user_name.php?user_name=admin

我热链接了URL并且它显示为false,因为管理员已经存在于数据库中,如果我更改为其他内容则显示为true(当然它不在DB中)

有人可以帮我这个吗?希望我能够说清楚到目前为止我做了什么以及我面临的问题。

这是我在User类中的函数。

public function checkUniqueUser($username){
      $return = true ;
      global $db ;
      $db->query("select iduser from user where 
      user_name = '".$this->cleanInput($username)."'");
      if($db->numRows() > 0 ){
        $return = false ;
      }
      return $return ;
}

1 个答案:

答案 0 :(得分:0)

由于您需要输出,因此您需要echo truefalse来自您的函数,而不是return。从技术上讲,return无处可去。

请参阅PHP returnPHP echo

public function checkUniqueUser($username){
      $return = true ;
      global $db ;
      $db->query("select iduser from user where 
      user_name = '".$this->cleanInput($username)."'");
      if($db->numRows() > 0 ){
        $return = false ;
      }
      echo $return ;  // echo (output) true or false
}