2015-12-12 2 views
1

Недавно я создал веб-проект. Я хочу обновить mysql-запрос через ajax и PHP. Я создал код, но у меня были проблемы. Мой сервер использует PHP 5.2 *. Когда я нажимаю кнопку для обновления базы данных, иногда ничего не происходит, и иногда я получаю ошибку базы данных. Я не знаю точно, где проблема, потому что это первый раз, когда я работаю в back-end dev, поэтому любая помощь оценивается!Обновление базы данных MySQL с помощью PHP и AJAX

--------------------HOME.JS-------------------- 
$('#update_profile').click(function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      type: "POST", 
      url: 'lib/preferences.php', 
      data: { 
       email: $('#pref-changes input[name="email"]').val(), 
       pass: $('#pref-changes input[name="pass"]').val(), 
       username, $('#pref-changes input[name="username"]').val(), 

      }, 
      dataType: "html", 
      success: function(data){ 
        window.location.href = data; 
       } 
     }); 
}); 


--------------------HOME.HTML-------------------- 
<form class="pref-changes" id="pref-changes"> 
     <div class="pref_avatar"> 
      <div class="avatar_change">Change</div> 
     </div> 

     <div style="margin-top: 10px;"> 
      <label>Change Username</label> 
      <input name="username" class="pref_inp" placeholder="GeorgeGkas" type="text"> 
     </div> 

     <div class="lbl"> 
      <label>Change Email</label> 
      <input name="email" class="pref_inp" placeholder="[email protected]" type="email"> 
     </div> 

     <div class="lbl"> 
      <label>Change Password</label> 
      <input name="pass" class="pref_inp" placeholder="Password" type="password"> 
     </div> 

     <div class="update_btn"> 
      <button type="submit" id="update_profile" name="update_profile">Update</button> 
     </div> 

</form> 


--------------------PREFERENCES.PHP-------------------- 
<?php 
    session_start(); 

    define("DB_HOST", 'mysql6.000webhost.com'); 
    define("DB_USER", ''); 
    define("DB_PASSWORD", ''); 
    define("DB_DATABSE", ''); 
    $UserEmail = $_SESSION['login']; 
    $conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
    mysql_select_db(DB_DATABSE, $conn); 

    if ($email != "") { 
     $sql = "UPDATE Users SET UserEmail='".$email."' WHERE UserEmail=".$UserEmail.""; 
     mysql_query($conn, $sql); 
    } 

    if ($pass != "") { 
     $sql = "UPDATE Users SET UserPass='".$pass."' WHERE UserEmail=".$UserEmail.""; 
     mysql_query($conn, $sql); 
    } 

    if ($username != "") { 
     $sql = "UPDATE Users SET UserName='".$username."' WHERE UserEmail=".$UserEmail.""; 
     mysql_query($conn, $sql); 
    } 

    $host = $_SERVER['HTTP_HOST']; 
    $link = "http://$host/home.php"; 
    echo $link; 
?> 

ответ

1

На вашем PHP кода вы определили $email, $pass или $username? Возможно, вам это нужно, прежде чем проверить, если они diferente от «»

$email = $_POST["email"]; 
$pass = $_POST["pass"]; 
$username = $_POST["username"]; 
+0

проходит значение через Ajax, но я не знаю, если я делаю это правильно. См. Данные в моем вызове ajax. –

+0

Значения POST ссылаются внутри переменной $ _POST. Измените свой код, чтобы использовать то, что предложил Рикардо. Это также поможет, если вы разместите сообщение об ошибке базы данных. Также ... ваш код также не защищен вообще, используйте mysql_real_escape_string, чтобы сделать вашу базу данных безопасной. – Clay

+0

@ Clayton это всего лишь проект. В последнее время защищенная часть будет обрабатываться. Что касается PHP, я не знал, что мне нужно передавать значения через POST. Есть ли другая часть моего кода, которая нуждается в исправлении? –

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