jQuery와 PHP를 사용하는 간단한 가입 페이지에서 AJAX를 사용하고 있습니다.PHP에서 AJAX 요청에 대한 응답 없음
<script>
function submitForm(){
var data1=$('#regform').serialize();
$.ajax({
type:'POST',
url:'signup.php',
data:data1,
success: function(response){
console.log(response);
if(response==1)
alert('taken');
else if(response==2)
alert('registered');
else
alert(response);
}
});
}
</script>
및 호출에 응답하는 PHP 스크립트 :
signup.php :
<?php
require_once 'dbconnect.php';
if($_POST) {
$user_name = $_POST['user_name'];
$user_email = $_POST['user_email'];
$user_password = $_POST['password'];
try {
$sth = $dbh->prepare("SELECT * FROM logindata WHERE email=:email");
$sth->execute(array(":email"=>$user_email));
$count = $sth->rowCount();
if($count==0){
$sth = $dbh->prepare("INSERT INTO logindata(username,email,pass) VALUES(:uname, :email, :pass)");
$sth->bindParam(":uname",$user_name);
$sth->bindParam(":email",$user_email);
$sth->bindParam(":pass",$user_password);
if(!$sth->execute()) {
echo "3";
} else {
echo "2";
}
} else{
echo "1";
}
}
catch(PDOException $e){
echo $e->getMessage();
}
}
?>
PDO를 사용하여 여기에
는 아약스 전화를 만들기위한 스크립트입니다.<?php
$dbhost='localhost';
$dbuser='root';
$dbpass='';
$dbname='ambitio';
try{
$dbh=new PDO("mysql:host={$dbhost};dbname={$dbname}",$dbuser,$dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo $e->getMessage();
}
?>
문제점 :
dbconnect.php
두 반응 중 어느 것도 JQuery와 Ajax 호출로 복귀하고있다.console.log()
으로 확인했지만 브라우저에 아무것도 표시되지 않습니다. 데이터가 MySQL 데이터베이스에 저장되면 (확인) PHP에서
execute()
이 정상적으로 작동하지만 브라우저에는 경고가 표시되지 않습니다.
count
이
0
인 경우
1
이 반환됩니다.
또한 양식을 실제로 제출하지 않고 양식을 새로 고치면 브라우저 콘솔에 POST 412 (Precondition Failed)
오류가 나타납니다.
편집 : 게시 한 전체 php.
EDIT2 : 아파치 액세스 로그
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/css/bootstrap.css HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/css/overboot.css HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/css/font-awesome.css HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/js/jquery.js HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/js/bootstrap.js HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [20/Jul/2016:00:43:36 +0530] "GET /ambitio/signup.html HTTP/1.1" 200 1454 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [20/Jul/2016:00:43:46 +0530] "POST /ambitio/signup.html HTTP/1.1" 200 1454 "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [20/Jul/2016:00:43:46 +0530] "POST /ambitio/signup.php HTTP/1.1" 200 1 "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
EDIT3 : 양식 HTML 마크 업 : 당신의 양식에 보내고에 URL을 포함하지 않기 때문에
에게<form method="post" id="regform" onSubmit="submitForm()">
<input type="text" placeholder="Username" id="user_name" name="user_name" />
<input type="email" placeholder="Email" id="user_email" name="user_email" />
<input type="password" placeholder="Password" id="password" name="password" />
<input type="password" placeholder="Retype password" id="rpassword" name="rpassword" />
<input type="submit" id="submit"/>
</form>
모든 PHP 코드 – 0x13a
를
return false
을 추가? – msantos@ 0x13a가 질문을 업데이트했습니다. –