我遇到了使用ajax和php的麻煩。我想要做的是調用一個ajax函數,它從表單的輸入中獲取一個值,並檢查該電子郵件是否存在於數據庫中。這是我目前的javascript:Ajax如何與PHP一起工作?
//Checks for Existing Email
function checkExisting_email() {
$.ajax({
type: 'POST',
url: 'checkExist.php',
data: input
});
emailExists = checkExisting_email();
//If it exists
if (emailExists) {
alert("This email already exists!");
}
不幸的是,我不能讓我的警報熄滅。在我的PHP函數中,它檢查輸入是用戶名還是電子郵件(僅用於我的目的,所以你知道),然後在任一列中查找它。如果找到,則返回true,如果沒有,則返回false:
include ('func_lib.php');
connect();
check($_POST['input']);
function check($args)
{
$checkemail = "/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i";
if (!preg_match($checkemail, $args)) {
//logic for username argument
$sql = "SELECT * FROM `users` WHERE `username`='" . $args . "'";
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($res) > 0) {
return true;
} else {
return false;
}
} else {
//logic for email argument
$sql = "SELECT * FROM `users` WHERE `email`='" . $args . "'";
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($res) > 0) {
return true;
} else {
return false;
}
}
}
所以我的問題是,如何將這些收益AJAX迴應,我該如何作出相應的AJAX功能?主要是,爲什麼這不起作用?
任何幫助,非常感謝。謝謝!
焦慮問題:當你將$ _POST變量直接傳遞給你的MySQL查詢,而不使用像mysql_real_escape_string()這樣的轉義函數時,你的PHP可以適應XSS攻擊。 – cmbuckley 2011-05-08 20:49:47
Buckley,我認爲你的意思是sql注入,因爲xss是一個依賴用戶運行任意javascript的前端功能。 – BRampersad 2011-05-08 21:12:25
感謝您糾正我的胡言亂語! – cmbuckley 2011-05-08 22:44:31