1

我正在尝试使用远程验证来验证用户名。
这是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';
    ?>

并不断验证输入。

4

1 回答 1

0

不再支持 mysql_* 函数,它们已被正式弃用,不再维护,将来将被删除。您应该使用 PDO 或 MySQLi 更新您的代码,以确保您的项目在未来的功能。

mysql_query返回 aresource而不是结果集。所以$checkname > 0永远都是真的。然后您需要使用mysql_fetch_assoc

您应该将查询命令更改为mysqli_query. 并检查$checkname->fetch_row() http://us2.php.net/manual/en/mysqli.query.php的结果

于 2013-05-13T17:12:20.500 回答