나는이 문제를 해결할 수있는 제안을 주시면 감사하겠습니다.자바 스크립트에서 순차적으로 명령을 실행
DB에 checkAvailability() 함수를 사용하여 그룹을 데이터베이스에 추가 할 수 있는지 확인합니다. (어떤 이유로 데이터베이스 키 제약 조건이 적용되지 않았습니다.) 이 작업을 수행하는 동안 PHP 함수에서 출력을 받기 전에도 함수가 반환되는 경우가 있습니다.
그래서 나는 혼합 결과를 얻습니다. PHP 파일의 출력을 받으면 올바른 결과를 보여줍니다. 그러나 단지 거짓을 반환하는 시대의 나머지.
어떻게 고칠 수 있습니까? 코드는 다음과 같습니다 문제가 $.post
보내는 것입니다
function checkAvailability(){
var grpname = $('#groupname').val();
var isAvailable = false
//use ajax to run the check
$.post("checkGroupName.php", { gname: grpname },
function(result){
if(Number(result) == 0){
//show that the groupname is available
isAvailable = true ;
$('#username_availability_result').html(grpname + ' is Available');
}
else{
//show that the groupname is NOT available
isAvailable = false ;
$('#username_availability_result').html(grpname + ' is already taken');
}
});
alert("isAvailable : "+isAvailable);
return isAvailable ;
}
checkGroupName.php이
$gname = $_POST['gname'];
$query = "SELECT * FROM groups WHERE group_name='$gname'";
$result = mysql_query($query);
if(mysql_num_rows($result)){
echo 1;
else
echo 0;
나는 확실히 당신의 응용 프로그램상의 SQL 주입 공격을 실행할 수있는 사랑 해요! –
왜 결과를 문자열로 비교하지 않으시겠습니까? if (result == '0') {... – heximal
user : Re @ Delan의 의견은 코드에서 다루고 싶은 진짜 문제입니다. 기타 : http://en.wikipedia.org/wiki/Sql_injection –