아약스와 PHP를 사용하는 데 문제가 있습니다. 내가 뭘 하려는지 양식의 입력에서 값을 잡고 그 이메일이 데이터베이스에 있는지 확인 아약스 함수를 호출합니다. 다음은 현재 자바 스크립트입니다.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;
}
}
}
그래서 내 문제는, 어떻게 내가 어떻게 아약스 기능은 따라해야합니까이 반환에 아약스 응답을 않고있다
? 주로, 왜 이것이 작동하지 않습니까?모든 도움을 주시면 대단히 감사하겠습니다. 고맙습니다!
오프 토픽 : mysql_real_escape_string()과 같은 이스케이프 기능을 사용하지 않고 $ _POST 변수를 MySQL 쿼리에 직접 전달할 때 PHP는 XSS 공격에 대해 배제 할 수 없습니다. – cmbuckley
Buckley, xss는 임의의 자바 스크립트를 실행하는 사용자의 능력에 의존하는 프런트 엔드 문제이므로 SQL 주입을 의미한다고 생각합니다. – BRampersad
내 횡포 한 것을 고쳐 주셔서 감사합니다! – cmbuckley