나는 자바 스크립트를 사용하는 초보자이며 PHP 페이지에 사용자 이름과 암호를 제출 한 다음 데이터베이스에 해당 객체가 있는지 확인합니다. 다른 페이지.php & ajax가 잘못된 결과를 반환합니다.
현재 양식을 제출하면 false 값을 반환합니다. 그러나 PHP 페이지에 값을 추가하면 true를 반환합니다.
그래서 내가 아약스와 PHP 사이에 문제가 있어야한다고 생각하지만 어디서 잘못 될지 알 수 없으므로 어떤 제안도 감사 할 것입니다.
나는 크롬 개발자 도구에서 코드를 실행하면 콘솔이 경고를 표시 :
event.returnValue
가되지 않습니다. 대신 event.preventDefault()
표준을 사용하십시오.
그러나 나는 그것이 무엇과 관련이 있는지 확실하지 않지만, Google 검색을 수행하면 경고 일 뿐이지 만 다른 경고는 표시되지 않습니다.
HTML 양식
<label id="errorMessage"></label>
<form method="post" class="login">
<input name="username" type="text" placeholder="Username"/>
<input name="password" type="password" placeholder="Password"/>
<input type="submit" name="login" class="login" value="Login" id="orange"/>
</form>
아약스
$(document).ready(function(){
$('form.login').submit(function() {
var username = $(this).find('.username').attr('value');
var password = $(this).find('.password').attr('value');
// ...
$.ajax({
type: "POST",
url: "login.php",
data: "username="+ username +"& password="+ password,
success: function(response){
if(response == 'true')
{
window.location.href='main.html';
}
else
{
$("#errorMessage").html(response);
}
}
});
return false;
});
});
PHP는
$username = mysql_real_escape_string($_POST['username']);
$password = md5(mysql_real_escape_string($_POST['password']));
if(!empty($username) && !empty($password))
{
$result = mysql_query("SELECT * FROM users WHERE username='$username' and password ='$password'");
$num_rows01 = mysql_num_rows($result);
if($num_rows01 === 1)
{
echo 'true';
}
else
{
echo 'false';
}
}
문제의 범위를 좁히려 고 시도 했습니까? 별도로 각 스 니펫을 테스트하고, Chrome/Firefox 디버그 도구를 사용하고, 보고서를 표시하거나 로그를 읽는 등 어떤 스 니펫이 제대로 작동하지 않는지 확인하십시오. –
감사합니다. 수동으로 양식 데이터를 추가하여 PHP 코드를 시도했는데 사실이 반환되었습니다. , 그래서 나는 당신이 말한 것을 시도하고 양식과 아약스를 점검 할 필요가 있다고 생각합니다. 건배 –
입력 형식을 submit ... button ... and jquery .submit .click;)로 변경해보십시오. – Hackerman