我正在尝试使用AJAX检查数据库中是否已经存在一个用户。为了简单起见,我现在只检查名字和姓氏。下面是我得到的信息:
具有表单和JavaScript错误处理的.php文件:
$.get('verify_unique.php',{firstname:frm.add_fd2.value, lastname:frm.add_fd3.value},function(data){
if (data.matches>0){
var num_rows='1';
}else{
var num_rows='0';
}
}, "json");
function check(frm) {
var szAlert = "Invalid\n";
var nIndex = 0;
if (num_rows > 0) {
nIndex++;
szAlert += "- " +"This name already exists "+num_rows +" times\n";
}
if (!RequiredField(frm.add_fd1.value)) {
nIndex++;
szAlert += "- " +"'Title' cannot be blank\n";
}等
文件verify_unique.php:
// DATABSE PARAMETERS
$link = @mysql_connect($host,$user,$passwd);
$database=mysql_select_db($db);
$firstname=$_GET['firstname'];
$lastname=$_GET['lastname'];
$result=mysql_query('SELECT * FROM organisations WHERE FirstName="'.$firstname.'" AND LastName="'.$lastname.'"', $link);
header('Content-Type: application/json');
echo '{matches:'.mysql_num_rows($result).'}';
?>当我提交表单时,它不仅没有返回AJAX警告,还跳过了对javascript的检查。不幸的是,它不会抛出任何错误。有人能看到我哪里出问题了吗?
谢谢马吕斯
编辑:当前情况:
`$.get('verify_unique.php',{firstname:frm.add_fd2.value, lastname:frm.add_fd3.value},function(data){ if (data.matches>0){ var num_rows='1'; }else{ var num_rows='0'; } }, "json");` 调试器:未定义frm。frm是这个页面上唯一一个表单的名称,javascript可以调用它来执行健全性检查。verify_unique.php文件中没有任何更改
发布于 2011-02-10 16:54:04
危险:
$result=mysql_query('SELECT * FROM organisations WHERE FirstName="'.$firstname.'" AND LastName="'.$lastname.'"', $link);这是对SQL注入攻击的邀请!在将名字和姓氏发送到SQL之前,您需要对它们进行转义。
https://stackoverflow.com/questions/4954831
复制相似问题