2013-01-16 1 views
-3

사용자가 데이터베이스에 존재하는지 확인하는 양식을 만들려고하지만 AJAX를 SQL과 연결하는 데 문제가 있습니다.이 문제를 발견하면 도움이 될 것입니다. 고맙습니다, 미안 해요 영어가 훌륭하지 않아요.AJAX는 SQL 데이터베이스와 연결할 수 없습니다

<!DOCTTYPE html> 
<html lang="en"> 
<head> 
<mete charset="UTF-8"> 
<title>Email client</title> 
<script type="text/javascript"> 

function load(){ 
if (window.XMLHttpRequest) { 
    xmlhttp = new XMLHttpRequest(); 
}else{ 
    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 
} 
xmlhttp.onreadystatechange = function(){ 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
     document.getElementById('info').innerHTML = xmlhttp.responseText; 
    } 
} 
xmlhttp.open('GET', 'checkuser.php', true); 
xmlhttp.send(); 

} 

</script> 
</head> 

<body> 

<form name="loginform" onclick="load();"> 

    Username : <input name="userID" type="text" id="userID"><br /> 
    Password : <input name="password" type="password" id="passWD"><br /> 
    <input type="submit" id="button" value="Get in there"> <br /> 
    <p>Don't have an account? <a href="register.html"> please register </a></p> 
</form> 

<div id="info"></div> 


</body> 

</html> 

내 PHP (checkuser.php) :이 내 코드입니다

귀하의 PHP는 쿼리 문자열에 암호를 전송하지 마십시오 (전달이 쿼리 문자열 매개 변수가 예상
<?php 
$dbhost = 'localhost'; 
$dbuser = 'xxxx'; 
$dbpass = 'xxxx'; 
$dbname = 'xxxx'; 
$dbtable = 'xxxx'; 


$q=$_GET["userID"]; 
$p=$_GET["passWD"]; 

$con = mysql_connect($dbhost, $dbuser, $dbpass); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
$dbselect = mysql_select_db($dbname,$con); 

$sql="SELECT * FROM $dbtable WHERE userID='$q'"; 

$result = mysql_query($sql); 


if (mysql_num_rows($result)==0) { 
    echo "not registered"; 
} else { 
    while($row = mysql_fetch_array($result)) 
{ 

if (($row['passWD'])==$p) { 
    echo "registered"; 
} else { echo "not registered";} 

} 
} 
mysql_close($con); 

?> 
+0

무엇이 문제입니까? 어떤 오류가 보이니? 브라우저 콘솔과 서버 로그의 로그를 확인하여 정확히 작동하지 않는 것을 파악해야합니다. – hvgotcodes

+0

onclick 대신에'load' onsubmit을 호출 할 수 있습니다. – Musa

+0

"SQL에 연결하는 AJAX"는 의미가 없습니다. AJAX를 사용하면 브라우저를 통해 PHP 스크립트간에 통신 할 수 있습니다. PHP 스크립트 중 하나는 MySQL 데이터베이스에서 작동합니다. 첫 번째 단계는 작업이나 PHP 스크립트를 수행하지 않는 AJAX인지 확인하는 것입니다. 매개 변수를 사용하여 checkuser.php를 직접 호출하여 데이터베이스에 문제가 있는지 확인한 다음 결과에 따라 앞으로 이동하십시오. – maksimov

답변

1

, 그들은 POST 요청을 사용하여 기록 될 수 있지만 자바 스크립트는 쿼리 문자열없이 스크립트의 URL을 요청하는 것입니다.

은 아마도 당신은 양식에서 데이터를 얻을 수 load을 확장하고 양식 및 문서가 아닌 load 이벤트의 submit 이벤트에 load를 호출합니다.

관련 문제