2012-07-06 2 views
0

jQueryPHP을 사용하여 앱에 대한 사용자 등록 및 로그인을 개발하고 있습니다. 회원 데이터베이스에 레코드를 삽입하는 데 문제가 있습니다. 제출을 클릭하면 "등록되지 않음"알림이 표시됩니다. 등록 페이지로 돌아갑니다.jQuery 및 PHP 등록 스크립트가 작동하지 않습니다.

jQuery 제출 버튼에 대한 핸들과 HTML :

$('#regsubmit').click(function(){ 
     $.post("register.php",{reguser: $("#reguser").val(), fname: $("#fname").val(),lname: $("#lname").val(),regpass: $("#regpass").val(), regemail: $("#regemail").val()},function(data){ 
      if(data == true){ 
       alert("Registered"); 
      }else{ 
       alert("Not Registered"); 
      } 
      }); 
     }); 

<div data-role="content"> 
<div data-role="collapsible"><h2>Register</h2> 
    <form action="" method="post" id="registrationform"> 
    <div data-role="fieldcontain"> 
     <label for="fname">First name:</label> 
     <input type="text" name="fname" id="fname" value="" /> 
     <div id="fnamecheck"></div> 
    </div> 
     <div data-role="fieldcontain"> 
     <label for="lname">Last name:</label> 
     <input type="text" name="lname" id="lname" value="" /> 
     <div id="lnamecheck"></div> 
    </div> 
     <div data-role="fieldcontain"> 
     <label for="regemail">Email:</label> 
     <input type="email" name="regemail" id="regemail" value="" /> 
     <div id="emailcheck"></div> 
    </div> 
<div data-role="fieldcontain"> 
     <label for="reguser">Username:</label> 
     <input type="text" name="reguser" id="reguser" value="" /> 
     <div id="usernamecheck"></div> 
    </div> 
    <div data-role="fieldcontain"> 
     <label for="regpass">Password:</label> 
     <input name="regpass" type="password" id="regpass" value=""> 
     <div data-role="fieldcontain"><label for="confirmregpass">Confirm Password:</label> 
     <input name="confirmregpass" type="password" id="confirmregpass" value=""></div> 
    </div> 
    <input name="regsubmit" type="submit" id="regsubmit" value="Register" data-icon="check" data-theme="a"/> 
    </form> 
     </div> 

그리고 내 register.php가 :

<?php 
$MYSQL_SERVER = "localhost"; 
$MYSQL_USER = "root"; 
$MYSQL_PASSWORD = "password"; 

     $db = mysql_connect($MYSQL_SERVER, $MYSQL_USER, $MYSQL_PASSWORD) or die(mysql_error()); 
    mysql_select_db("hedonsof_conflict") or die(mysql_error()); 

     $fname = $_POST['fname']; 
     $lname = $_POST['lname']; 
     $email = $_POST['regemail']; 
     $reguser = $_POST['reguser']; 
     $regpass = $_POST['regpass']; 
     //Username check 
     $usercheck = mysql_query("SELECT * FROM members WHERE username='".$reguser."'"); 
     if(empty($fname)||empty($lname)||empty($email)||empty($reguser)||empty($regpass)){ 
      if(empty($fname)){ 
       $errors[] = "Missing first name."; 
      } 
      if(empty($lname)){ 
       $errors[]= "Missing last name."; 
      } 
      if(empty($email)){ 
       $errors[]= "Missing email."; 
      } 
      if(empty($reguser)){ 
       $errors[]= "Missing user name."; 
      } 
      if(empty($regpass)){ 
       $errors[] = "Missing password."; 
      } 
     }elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){ 
      $errors = "Not a valid eail address."; 
     }else{ 
      $fname = strip_tags($fname); 
      $fname = stripslashes($fname); 
      $fname = trim($fname); 

      $lname = strip_tags($lname); 
      $lname = stripslashes($lname); 
      $lname = trim($lname); 

      $email = strip_tags($email); 
      $email = stripslashes($email); 
      $email = trim($email); 

      $reguser = strip_tags($reguser); 
      $reguser = stripslashes($reguser); 
      $reguser = trim($reguser); 

      $regpass = strip_tags($regpass); 
      $regpass = stripslashes($regpass); 
      $regpass = trim($regpass); 

      $sql = mysql_query("INSERT INTO members (username, fname, lname, password, email) VALUES('$reguser','$fname','$lname','$regpass','$email)") or die(mysql_error()); 

       $msg = "Thanks for Registering."; 
       if($msg){ 
       echo true; 
      }else{ 
       $errors[] = "Sorry error with database at this time."; 
       echo $errors; 
      } 
     } 
?> 

편집 :

<?php 
$MYSQL_SERVER = "localhost"; 
$MYSQL_USER = "root"; 
$MYSQL_PASSWORD = "password"; 

$db = mysql_connect($MYSQL_SERVER, $MYSQL_USER, $MYSQL_PASSWORD) or die(mysql_error()); 
    mysql_select_db("hedonsof_conflict") or die(mysql_error()); 

     $fname = $_POST['fname']; 
     $lname = $_POST['lname']; 
     $email = $_POST['regemail']; 
     $reguser = $_POST['reguser']; 
     $regpass = $_POST['regpass']; 
     $errors[] = ""; 

     //Username check 
     $usercheck = mysql_query("SELECT * FROM members WHERE username='".$reguser."'"); 

      if(empty($fname)){ 
       $errors[] = "Missing first name."; 
      } 
      if(empty($lname)){ 
       $errors[]= "Missing last name."; 
      } 
      if(empty($email)){ 
       $errors[]= "Missing email."; 
      } 
      if(empty($reguser)){ 
       $errors[]= "Missing user name."; 
      } 
      if(empty($regpass)){ 
       $errors[] = "Missing password."; 
      } 
    //  }elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){ 
    //  $errors = "Not a valid email address."; 
     else{ 
      $fname = strip_tags($fname); 
      $fname = stripslashes($fname); 
      $fname = trim($fname); 
      //$fname = mysqli_real_escape_string($fname); 

      $lname = strip_tags($lname); 
      $lname = stripslashes($lname); 
      $lname = trim($lname); 
      //$lname = mysqli_real_escape_string($lname); 

      $email = strip_tags($email); 
      $email = stripslashes($email); 
      $email = trim($email); 
      //$email = mysqli_real_escape_string($email); 

      $reguser = strip_tags($reguser); 
      $reguser = stripslashes($reguser); 
      $reguser = trim($reguser); 
      //$reguser = mysqli_real_escape_string($reguser); 

      $regpass = strip_tags($regpass); 
      $regpass = stripslashes($regpass); 
      $regpass = trim($regpass); 
      //$regpass = mysqli_real_escape_string($regpass); 

      $sql = mysql_query("INSERT INTO members (username, fname, lname, password, email) VALUES('$reguser','$fname','$lname','$regpass','$email')") or die(mysql_error()); 

       $msg = "Thanks for Registering."; 
       if($msg){ 
       echo "true"; 
      }else{ 
       $errors[] = "Sorry error with database at this time."; 
       echo "false"; 
      } 
     } 
?> 
+0

'data'는 값이 'true'이지만 실제로는 문자열 인 부울이 아닙니다. 그래서 나는 두 가지를 추천한다. (만약 당신이 JSON을 사용하지 않는다면) php의'echo' 라인을'echo "true";'로 바꾸고 Javascript에서는'if (data == "true")를 체크한다. – Adi

+0

나는 생각한다. @Adnan이 바로 이것에 맞습니다. 데이터는 문자열 응답입니다. 그렇지 않으면 jQuery에 별도로 말하지 않는 한, 문자열로 표시하고 콘솔의 서버 출력을 확인해야합니다. –

+0

감사합니다.이 변경 사항을 적용했지만 문제는 여전히 존재합니다. – RapsFan1981

답변

1

이 시도 :

$('#regsubmit').click(function(e){ 
    e.preventDefault(); 

     $.post("register.php",{reguser: $("#reguser").val(), fname: $("#fname").val(),lname: $("#lname").val(),regpass: $("#regpass").val(), regemail: $("#regemail").val()},function(data){ 
     if(data == true){ 
      alert("Registered"); 
     }else{ 
      alert("Not Registered"); 
     } 
     }); 

    return false; 
}); 
+0

변경 없음 .. 나는 또한 데이터를 시도 = "true". – RapsFan1981

+0

@ RapsFan1981 데이터를 알리려고했는데 코드에서 무엇을 반환하고 있습니까? –

+0

예 데이터가 아무 것도 반환하지 않는 것처럼 보였지만 이제는 해결되었습니다. – RapsFan1981

관련 문제