Validation 如何仅在用户名是免费的情况下发出ajax请求,
我已经完成了所有验证,并显示了一条错误或ok消息。现在最后一件事来了,我想从数据库中检查用户名的可用性,所以我需要查询我的服务器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
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');
}
});