我有一个简单的注册表单,它使用jQuery和Ajax来验证用户输入。当Ajax尝试对电子邮件地址进行服务器端验证(例如)并连接到数据库时,它不会通过$msg
返回结果。通过Ajax传递MySQL
function checkUser() {
$search = mysql_query("SELECT * FROM users WHERE username = '" . $username . "'");
$match = mysql_num_rows($search);
if($match > 0) {
$msg .= 'Username already in use, please try another.';
}
}
这里是JS:
function send(datastr) {
$.ajax({
type: "POST",
url: "./scripts/addmember.php",
dataType: "text",
data: datastr,
cache: false,
success: function(html) {
$("#errordiv").fadeIn("slow");
$("#errordiv").html(html);
//setTimeout('$("#errordiv").fadeOut("slow")',2000);
}
});
}
嘿只是,如果你想知道为什么向下票(不是我),这是可怕的应用程序设计通过SQL通过JS/Ajax。你可能想重新考虑你的设计。 – 2011-12-18 00:38:08
如果没有addmember.php,除了一般性建议外,很难提供任何内容。 – Purefan 2011-12-18 00:41:13
@DamenTheSifter和@因为这个原因downvoted的人:标题是错误的。没有SQL通过Ajax传递。第一个片段是* PHP *。它可能不会被SQL注入攻击,因为我们只能看到变量'$ username'。你在逃避它,对吧? – Ryan 2011-12-18 01:08:03