2014-01-27 30 views
-1

我問過類似的問題早,但想到我穿越了錯點,比固定我遇到的問題更多地瞭解了安全性。我有麻煩與我的ajax請求發佈數據到一個PHP腳本,然後提交給數據庫。將數據傳遞到PHP與MySQL奇怪的問題,

只是爲了說清楚,該網站是本地和我將有沒有人創建一個帳戶,除了我,我將是唯一一個訪問它。一旦我完成這個步驟,我會安全的。

當前錯誤我得到:沒有,但在警報成功後沒有任何數據(「成功」 +數據)

我用Google搜索/工作了10個小時以上只是這個...任何幫助將是非常感謝,因爲我只是在學習。

這裏是我的javascript:

var firstname = String($("#firstname").val()); 
var lastname = String($("#lastname").val()); 
var username = String($("#username").val()); 
var email = String($("#email").val()); 
var password = String($("#password").val()); 

這裏是AJAX:

$.ajax({ 
    type: 'POST', 
    url: 'create_account.php', 
    data: {firstname_php: firstname, 
      lastname_php: lastname, 
      username_php: username, 
      email_php: email, 
      password_php: password}, 
    success: function(data) { 
     alert("success" + data); 
    } 
}); 

create_account.php:

$firstname = $_POST['firstname_php']; 
$lastname = $_POST['lastname_php']; 
$username = $_POST['username_php']; 
$email = $_POST['email_php']; 
$password = $_POST['password_php']; 

echo "$firstname"; 
// Create connection 
$connection = mysqli_connect("localhost","root","root","MyDatabase"); 
// Check connection 
if (mysql_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 


$sql = "INSERT INTO users (user_id, user_firstname, user_lastname, user_username, user_email, user_password) VALUES (0, '$firstname', '$lastname', '$username', '$email', '$password)'"; 
$result = mysqli_query($connection,$sql); 
mysqli_close($connection); 
+0

請顯示內部服務器錯誤。 –

+0

POST HTTP://localhost/create_account.php 500(內部服務器錯誤) –

+0

'mysql_connect_errno' - >'mysqli_connect_errno' –

回答

1

你在錯誤的地方有一個單引號您查詢:

VALUES (0, '$firstname', '$lastname', '$username', '$email', '$password)'"; 
                     ^^^ 

試試這個:

VALUES (0, '$firstname', '$lastname', '$username', '$email', '$password')"; 
0

一切看起來精細的JavaScript和Ajax(至少還有我可以告訴沒有看到html源代碼以及。

但是你至少有一個PHP的錯誤; mysql_connect_errno不存在,不會被調用與mysqli連接器有關。

所以嘗試這個:

$firstname = $_POST['firstname_php']; 
$lastname = $_POST['lastname_php']; 
$username = $_POST['username_php']; 
$email = $_POST['email_php']; 
$password = $_POST['password_php']; 

echo "$firstname"; 
// Create connection 
$connection = mysqli_connect("localhost","root","root","MyDatabase"); 
// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 


$sql = "INSERT INTO users (user_id, user_firstname, user_lastname, user_username, user_email, user_password) VALUES (0, '$firstname', '$lastname', '$username', '$email', '$password')"; 
$result = mysqli_query($connection,$sql); 
mysqli_close($connection); 

我沒有使用過的mysqli連接器,但比它看起來好像沒什麼其他的。如果仍然不能工作,我建議您啓用完整的PHP調試信息 - 例如添加這php文件的頂部:

ini_set("display_errors", "1"); 
error_reporting(E_ALL); 

編輯:作爲hanlet說你也有錯了一個單引號/者點。 (在我的示例代碼中已修復)