Validation 如何仅在用户名是免费的情况下发出ajax请求,

Validation 如何仅在用户名是免费的情况下发出ajax请求,,validation,jquery,Validation,Jquery,我已经完成了所有验证,并显示了一条错误或ok消息。现在最后一件事来了,我想从数据库中检查用户名的可用性,所以我需要查询我的服务器 var b = $("#input_username_holder").val(); if (b != "Username" && b != "" && b.length > 6 && b.length < 17) { $.ajax({ type: "POST", ur

我已经完成了所有验证,并显示了一条错误或ok消息。现在最后一件事来了,我想从数据库中检查用户名的可用性,所以我需要查询我的服务器

var b = $("#input_username_holder").val();
if (b != "Username" && b != "" && b.length > 6 && b.length < 17) {
    $.ajax({
        type: "POST",
        url: "check_username.php",
        data: "b=" + b,
    }).done(function(msg) {
        $("#username_result").html(msg);
    });
}

我一直意识到这种威胁,js验证可能会出现错误,可能会在整个数据库上执行SQL注入,因此我总是尽最大努力保护我的站点免受任何黑客攻击。我是这样做的

$user_email = filter_input(INPUT_POST, 'usr_email', FILTER_SANITIZE_STRING);
而且。。。我通过这个函数传递值

function filter($data) {
    $data = trim(htmlentities(strip_tags($data)));

    if (get_magic_quotes_gpc())
        $data = stripslashes($data);

    $data = mysql_real_escape_string($data);

    return $data;
}

这足够了吗?或者你可以建议我一些最安全的东西

我建议这样做:

$.ajax({
  type: "POST",
  url: "register.php",
  data: {'a': a,
         'b': b,
         'c': c,
         'd': d}
}).done(function(msg) {
  if (msg == 'invalid') {
    $("#register_box").html('Username is invalid');
  } else if (msg == 'taken') {
    $("#register_box").html('Username has been taken');
  } else {
    $("#register_box").html('Success');
  }
});
register.php
处理所有用户名检查等。如果有错误,只需返回错误消息而不是成功消息


但是您绝对需要执行服务器端验证。如果不这样做,你将付出代价。

你永远不会用JavaScript验证。曾经我根本不需要访问你的页面就可以向你的PHP文件发送一个
POST
请求,这可能是格式错误的,并且可能会在你的整个数据库上执行SQL注入。我知道这一威胁,所以我会尽我所能保护我的网站免受任何黑客攻击。我这样做$user\u email=filter\u input(input\u POST,'usr\u email',filter\u SANITIZE\u STRING);而且。。。我通过这个函数传递值。。函数过滤器($data){$data=trim(htmlentities(strip_tags($data));if(get_magic_quotes_gpc())$data=stripslashes($data);$data=mysql\u real\u escape_string($data);返回$data;}
$.ajax({
  type: "POST",
  url: "register.php",
  data: {'a': a,
         'b': b,
         'c': c,
         'd': d}
}).done(function(msg) {
  if (msg == 'invalid') {
    $("#register_box").html('Username is invalid');
  } else if (msg == 'taken') {
    $("#register_box").html('Username has been taken');
  } else {
    $("#register_box").html('Success');
  }
});