我正在尝试通过远程验证来验证用户名 这是js代码
$('#form_reg').validate({
rules: {
username: {
minlength: 6,
required: true,
remote: { url:"validate_usr.php", async:false }
},
},
highlight: function(element) {
$(element).closest('.control-group').removeClass('success').addClass('error');
},
success: function(element) {
element
.text('OK!').addClass('valid')
.closest('.control-group').removeClass('error').addClass('success');
}
});
和php文件
<?php
include("bd_conex_mysql.php");
if (!empty($_REQUEST['username']))
{
$usrname = $_REQUEST['username'];
$checkname = mysqli_query("SELECT count(*) FROM cuentas WHERE CtaUsr = '".$usrname."'");
if($checkname->fetch_row() > 0){
echo 'false';
}
else{
echo 'true';
}
}
else
{
echo 'false';
}
?>
即使已经使用了用户名,它也会继续接受输入。
我已将php文件更改为
echo 'false';
?>
并不断验证输入。
答案 0 :(得分:0)
不再支持mysql_ *函数,它们已被正式弃用,不再维护,将来会被删除。您应该使用PDO或MySQLi更新代码,以确保将来的项目功能。
mysql_query
返回resource
而不是结果集。所以$checkname > 0
永远都是真的。然后,您需要使用mysql_fetch_assoc
您应该将查询命令更改为mysqli_query
。并检查$checkname->fetch_row()
的结果
http://us2.php.net/manual/en/mysqli.query.php