2014-08-29 3 views
0

Я создал регистрационную форму пользователя с php jquery и sql, а i am пытается ввести данные в базу данных через запрос ajax, код выполняется отлично, но значения не входят в базу данных , и i также проверили мой запрос, запустив его в запросе редактора sql также , работающий нормально,Значения, которые не вставляются в базу данных с помощью php

Вы можете указать, где ошибка?

<!DOCTYPE html> 
     <html> 
      <head> 
       <title>Login Register Test</title> 

       <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script> 

    /** 
    * Created by pratyush on 8/28/14. 
    */ 
    $(function(){ 
     $("input[name='btn_submit_reg']").click(function(){ 
      registerUser(); 
     }); 

     $("input[name='btn_submit_login']").click(function(){ 
      loginUser(); 
     }); 
    }); 



    function registerUser(){ 

     if(IsValidFormReg()){ 

      var frm = $(".register").serialize(); 

      $.ajax({ 
       url : 'modal/registerdao.php', 
       type : 'POST', 
       data : frm, 
       success : function(result) { 

        if (result.indexOf("correct") > -1) { 
         alert(frm); 

         window.location.replace("registrationconfirm.php"); 

        } 

       } 

      }); 

     } 

    } 


    function IsValidFormReg() 
    { 

     var valid= true; 

     var username = $("input[name='username_reg']").val(); 
     var userpass = $("input[name='userpass_reg']").val(); 
     var email = $("input[name='useremail_reg']").val(); 


     if(username.length==0){ 
      valid = false; 

      $("input[name='username_reg']").addClass("formerror"); 
     } 

     if(userpass.length==0){ 
      valid = false; 

      $("input[name='userpass_reg']").addClass("formerror"); 
     } 

     if(email.length==0){ 
      valid = false; 
      $("input[name='useremail_reg']").addClass("formerror"); 

     } 
     else{ 
      if(checkemail(email)==false){ 
       valid = false; 
       $("input[name='useremail_reg']").addClass("formerror"); 
       alert("please enter valid email"); 

      } 
     } 
     if(!valid) 
      $(".formentrieserror").html("&nbsp;&nbsp;&nbsp;&nbsp;Please fill correct form entries..."); 
     else 
      $(".formentrieserror").html("&nbsp;"); 
     return valid; 
    } 
    function checkemail(email){ 

     var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

     if(email.length>0){ 

      if (!filter.test(email)) 
       return false; 
      else 
       return true; 
     } 
     else 
      return false; 
    } 



    function loginUser(){} 


       <style> 
        .formerror{border: solid 2px red;} 
       </style> 
      </head> 
      <body> 

      <h2>Login Form</h2> <br><br> 
      <form class="login"> 
       <input type="text" name="username_login" placeholder="user name"> <br> <br> 
       <input type="password" name="userpass_login" placeholder="password"><br> <br> 

       <input type="button" name="btn_submit_login" value="Login"> 
      </form> 
      <br><br> 
      <h2>Registration Form</h2> 
      <br><br> 

      <form class="register"> 
       <input type="text" name="username_reg" placeholder="user name"> <br> <br> 
       <input type="password" name="userpass_reg" placeholder="password"><br> <br> 
       <input type="email" name="useremail_reg" placeholder="email"><br> <br> 

       <input type="button" name="btn_submit_reg" value="Register"> 
      </form> 
      <div class="formentrieserror"></div> 
      </body> 
     </html> 

    //registerDao.php..................................// 


    <?php 



    class RegisterUserInfo{ 

     public $userName; 
     public $userPassword; 
     public $userEmail; 
    } 



    class userRegisterDao { 

     function RegisterUser($registration_info) { 
      include_once ("database.php"); 

      $qry = "insert into userdetails(
        userName, 
        userPassword, 
        userEmail) 
        values('".$registration_info->userName."','" 
         .$registration_info->userPassword."','" 
         .$registration_info->userEmail."')"; 

      return Database::executeQuery($qry);     // return true or false 

     } 
    } 



    $userName = mysql_escape_string($_REQUEST ['userName']); 
    $userPassword = mysql_escape_string($_REQUEST ['userPassword']); 
    $userEmail = mysql_escape_string($_REQUEST ['userEmail']); 

    $registration_info = new RegisterUserInfo(); 

    $registration_info->userName=$userName; 
    $registration_info->userPassword=$userPassword; 
    $registration_info->userEmail=$userEmail; 


    $dao = new userRegisterDao(); 
    $insert = $dao->RegisterUser($registration_info); 

    if($insert===true){ 

     echo "correct"; 
    } 
    else 
     echo "invalid"; 
    ?> 
+0

Почему бы вам не попросить об этом в вашем классе «База данных»? например, почему вы не проверяете возвращенные ошибки? Мы не знаем, какой API он использует и т. Д. Из его взглядов все, что ООП бесполезно, когда вы в конечном итоге используете 'mysql_escape_string' и другие' MySQL_ * '; может также использовать 'mysql_query' напрямую. –

+0

Почему havent вы накрыли '$ (function() {' под '' tag? – NoobEditor

+0

Пожалуйста, [не используйте string interop для создания запросов.] (Http://stackoverflow.com/questions/60174/how-can -i-prevent-sql-injection-in-php? rq = 1) – Dan

ответ

2

Изменение этой линии

$userName = mysql_escape_string($_REQUEST ['userName']); 
    $userPassword = mysql_escape_string($_REQUEST ['userPassword']); 
    $userEmail = mysql_escape_string($_REQUEST ['userEmail']); 

к этому

$userName = mysql_escape_string($_REQUEST ['username_reg']); 
              /* changed ^^ */ 
    $userPassword = mysql_escape_string($_REQUEST ['userpass_reg']); 
              /* changed ^^ */ 
    $userEmail = mysql_escape_string($_REQUEST ['useremail_reg']); 
              /* changed ^^ */ 
+0

Я думаю, что это может быть вашим ответом! –

0

Я вижу это МНОГО ... Ajax, без обработки ошибок, только успех обработчиков. Почему бы не вернуть php ошибки в ajax и вывести на консоль IE console.log (some_error). Это сделает отладку намного проще в будущем.

Я также вижу, что обработка исключений sql исключена. Это показало бы, что во время попыток вставки этого столбца не существует.

несколько советов по отладке в будущем, удачи.

Смежные вопросы