2013-07-05 57 views
0

不知道爲什麼,但我添加了一個「錯誤」子句以確保AJAX失敗。它可以正常工作到AJAX部分,它只是不發送數據,不知道爲什麼。嘗試發送數據時出現AJAX/JQuery錯誤

<script type="text/javascript"> 
<!-- 
$(document).ready(function() { 

$("#login").click(function() { 

    document.getElementById("result").innerHTML = 'Validating credentials...'; 

    var un = $("#un").val(); 
    var pw = $("#pw").val(); 

    if (un == "") 
    { 
     document.getElementById("un_error").style.visibility = 'visible'; 
     $("#un").focus(); 
    } 

    if (pw == "") 
    { 
     document.getElementById("pw_error").style.visibility = 'visible'; 
     $("#pw").focus(); 
    } 

    $.ajax({ 
     type: 'POST', 
     url: 'login-parse.php', 
     data: { un: un, pw: md5(pw) }, 
     success: function(msg) { 
       document.getElementById("result").innerHTML = msg; 
        }, 
     error: function(xhr, status) { alert(status); } 
    }); 

}); 

}); 
//--> 
</script> 

這就是JS代碼。

這是HTML:

<div id="content"> 
    <div id="result" class="result"></div> 
    <h2>Login To Your Account</h2> 
    <div class="text"> 
     <fieldset> 
      <fieldset> 
       <legend>Username</legend> 
       <input type="text" id="un" value="" size="20" /><span class="error" id="un_error">*</span> 
      </fieldset> 
      <fieldset> 
       <legend>Password</legend> 
       <input type="password" id="pw" value="" size="30" /> <span class="error" id="pw_error">*</span> 
      </fieldset> 
      <input type="button" id="login" value="Login" /> 
     </fieldset> 
    </div> 
</div> 

<?php 

// Login Parser 

require 'inc.common.php'; 

if (! isset ($_POST['un'], $_POST['pw'])) 
{ 
    echo '<blockquote>Invalid username/password combination.</blockquote>' . "\n"; 
} else { 
    $un = $_POST['un']; 
    $pw = md5($_POST['pw']); 

    $check = $sql->result ($sql->query ('SELECT COUNT(*) FROM `users` WHERE `user_name` = \'' . $sql->escape($un) . '\' AND `user_password` = \'' . $sql->escape($pw) . '\'')); 

    $errors = array(); 

    if (! strlen ($un)) 
     $errors[] = 'Please enter a valid username.'; 

    if (! strlen ($pw)) 
     $errors[] = 'Please enter a valid password.'; 

    if ($check == 0) 
     $errors[] = 'Invalid username/password combination.'; 

    if (count ($errors) > 0) 
    { 
     echo '<blockquote>' . "\n", 
      ' The following errors occurred with your login:' . "\n", 
      ' <ul>' . "\n"; 
     foreach ($errors as $enum => $error) 
     { 
      echo '  <li><strong>(#' . ($enum+1) . '):</strong> ' . $error . '</li>' . "\n"; 
     } 
     echo ' </ul>' . "\n", 
      '</blockquote>' . "\n"; 
    } else { 
     setcookie ('ajax_un', $un, time()+60*3600); 
     setcookie ('ajax_pw', $pw, time()+60*3600); 

     echo '<blockquote>' . "\n", 
      ' <p><strong>Success!</strong></p>' . "\n", 
      ' <p>You have successfully been logged in as <strong>' . $un . '</strong>.</p>' . "\n", 
      ' <p>You may now return to the <a href="index.php">index page</a>.</p>' . "\n", 
      '</blockquote>' . "\n"; 

    } 

} 

?> 
+0

是的,jquery被調用以及包含md5函數的函數js文件。文件「login-parse.php」也與登錄文件位於同一個目錄中。 – user2555004

+0

在控制檯中的任何錯誤? –

+0

在控制檯沒有錯誤,這就是爲什麼我不明白爲什麼它不工作 – user2555004

回答

0

從消息「500 - 內部服務器錯誤」在Firebug控制檯,您發佈的代碼,它似乎有在數據庫操作的一些問題。

因此,儘量存儲您的查詢變量。迴應它並嘗試在phpMyadmin或其他用於訪問數據庫的等效客戶端中執行相同的操作。

如果可能的話還發布結果。

+0

數據庫操作錯誤不會給出500錯誤。 –

相關問題