2014-07-26 98 views
0

我有這樣的代碼:AJAX不傳遞數據到PHP腳本?

<form id="login" name="login" class="login-form" action="./" method="post"> 
     <h2>Log In</h2> 
     <div class="error" style="display:none"></div> 
     <input type="text" id="login-username" placeholder="Full Name" /> 
     <input type="password" id="login-password" placeholder="Password" /> 
     <button onclick="submitLogin();">Log In</button> 
    </form> 

    <script type="text/javascript"> 
$(".login").submit(function(ev){ 
    ev.preventDefault(); 
}); 

function submitLogin() { 
    username = $(".login-username").val(); 
    password = $(".login-password").val(); 
    $.ajax({ 
     type: "POST", 
     url: "login.php", 
     datatype: "string", 
     data: {'username' : username, 'password' : password}, 

..... 

這是我的PHP腳本(login.php中):

<?php 
session_start(); 
require_once 'config.php'; 

$uName = $_POST['username']; 
$pWord = md5($_POST['password']); 

$query = "SELECT id, username, password, email FROM users WHERE username = '$uName' AND password = '$pWord'"; 
$result = mysql_query($query) or die(mysql_error()); 
$numrows = mysql_num_rows($result); 
$row = mysql_fetch_assoc($result); 


if($numrows == 1) { 
    echo 'true'; 
    $_SESSION['uName'] = $row['username']; 
} 
else { 
    echo 'false'; 
    } 
?> 

當我嘗試回聲出$uName$pWord其空。不知道發生了什麼事。幫助會很棒。當我編輯一個正確的用戶名和密碼到$uName$pWord到PHP ..說:$uName = kriiv;,這是一個正確的用戶名,它回聲良好。因此,看起來數據不會通過AJAX調用傳遞。

+0

更改你的元素' (「#login-password」)''和'(「.login-password」)''''爲'因爲你使用的是ID而不是類。 –

+1

不要等到您的網站被黑客入侵。之前有人發佈了一個關於他被類似代碼黑客攻擊的問題。您的代碼非常容易發生SQL注入。使用[**'mysqli_' with prepared statements **](http://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php)或[** PDO **](http: //php.net/pdo)與[** prepared statements **](http://php.net/pdo.prepared-statements)。 –

+1

另外,密碼存儲使用[** CRYPT_BLOWFISH **](http://security.stackexchange.com/q/36471)或PHP 5.5的['password_hash()'](http://www.php。 net/manual/en/function.password-hash.php)函數。對於PHP <5.5,使用['password_hash()兼容包]](https://github.com/ircmaxell/password_compat)。 MD5是舊的,被認爲是壞的。 –

回答

1

複製這些,它將工作,因爲登錄用戶名和登錄密碼是ID不是類。

username = $("#login-username").val(); 
password = $("#login-password").val(); 
0

更改此

username = $(".login-username").val(); 
    password = $(".login-password").val(); 

username = $("#login-username").val(); 
    password = $("#login-password").val(); 

.用於獲取上課#用於具有id元素,其ID不是階級