我有一个使用 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。
我从请求 watch 得到了 URL
http://project.localhost/check_user_name.php?user_name=admin
我热链接了 URL,它显示错误,因为管理员已经在数据库中,如果我更改为其他内容,它显示为 true(当然它不在数据库中)
有人可以帮我解决这个问题吗?希望我能够清楚地说明我到目前为止所做的事情以及我面临的问题。
这是我在 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 ;
}
最佳答案
因为你想要一个输出,你需要从你的函数中echo
true
或false
,而不是返回
。从技术上讲,没有地方可以返回
。
参见 PHP return
和 PHP 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
}
关于javascript - 带有远程的 Jquery 验证器奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312687/