사용자가 새 계정을 등록 할 때 전자 메일이 데이터베이스에 있는지 확인하고 있습니다. "EmailMessage"는 데이터베이스에있는 전자 메일을 넣을 때 나타나지 않습니다. 코드는 아래의 위치 :전자 메일이 데이터베이스에 존재하는지 확인
는
function validateemail() {
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var response = xmlhttp.responseText;
response = response.replace(/^\s+|\s+$/g,'')
if(response == 'error'){
document.getElementById("EmailMessage").innerHTML='This e-mail address is already taken! If you believe this is in error, please email <a href="mailto:[email protected]">[email protected]</a>';
document.getElementById("newemail").focus();
document.getElementById("email_notice").style.display="none";
document.getElementById("submit_new_account").disabled =true;
}
else {
document.getElementById("EmailMessage").innerHTML="";
}
}
}
var newemail = document.getElementById("newemail").value;
if(newemail!=""){
xmlhttp.open("GET","Checkemail.php?email="+newemail,true);
xmlhttp.send();
}
else{
document.getElementById("EmailMessage").innerHTML="";
document.getElementById("submit_new_account").disabled =false;
}
}
Checkemail.php을 validateemail.js
$emailexists = $_GET['email'];
$sql = executeQuery("SELECT email from tbl_Users WHERE email = '$emailexists'");
$i = getNumRows($sql);
if ($i !=0) {
echo "error";
}else {
echo "pass";
}
---
<input type="text" id="newemail" name="newemail" maxlength="60" size="27" onblur="validateemail();"/>
</div>
<div id="EmailMessage" style="color:#F00"></div>
당신이 이것을 좁혔습니까? 전자 메일 주소로 PHP를 직접 호출하여 적절한 응답을 얻을 수 있습니까? – andrewsi
내가 할 때 "오류"가 발생합니다. – ChaseC
다음 단계는'var_dump ($ sql)'과'var_dump ($ i)'를 사용하여 거기에있는 값을 확인하는 것입니다. 아마도 어떤 이유로 쿼리가 실패했을 것입니다. – andrewsi