2013-01-16 63 views
-2

我想做一個簡單的註冊表單,它將數據存儲在數據庫中,但它似乎不適合我。無法從HTML表格中插入數據到MYSQL

這是我的html代碼:

<html> 
<body> 
    <form method="post" name="register" action="register.php"> 
    <table> 
    <tr> 
    <td>User Name:</td> 
    <td><input type="text" name="name"></td> 
    </tr> 
    <tr> 
    <td>User Email:</td> 
    <td><input type="text" name="email"></td> 
    </tr> 
    <tr> 
    <td>User Role:</td> 
    <td><input type="text" name="role"></td> 
    </tr> 
    <tr> 
    <td><input type="submit" name="SubmitForm" value="Save"></td> 
    </tr> 

</form> 
</body> 
</html> 

,這是我的PHP代碼:

<?php 
// Make a MySQL Connection 

$user="root"; 
$password="my password"; 
$database="playtime"; 
$host="localhost"; 
$table="ttuser"; 

mysql_connect($host, $user, $password) or die("Connection Failed"); 
mysql_select_db($database) or die("Connection Failed"); 

$name = $_POST['name']; 
$email = $_POST['email']; 
$role = $_POST['role']; 

// Insert a row of information into the table "ttuser" 

$query = "INSERT INTO ttuser (uemail, uname, urole) VALUES('$email', '$name', '$role')"; 
if(mysql_query($query)){ 
echo "inserted";} 
else{ 
echo "fail";} 

?> 

它連接到數據庫,但是當我點擊它進入html頁面上提交PHP,但沒有顯示任何東西。 有人可以幫忙嗎?

+6

那麼,人們會停止從教程中複製sql注入? – Peter

+0

你打開了錯誤報告嗎? –

+0

首先要檢查的是Apache錯誤日誌。如果您在個人計算機上安裝了MAMP或其他堆棧服務,則該對話框通常會有一個「顯示Apache日誌」的按鈕。運行腳本,記下出現的任何錯誤。 如果這不是一個選項或沒有幫助,請嘗試在IF語句之前和之後回顯某些內容,以確切確定腳本崩潰的位置。 第三,正如彼得所暗示的,一定要了解正確的SQL清理。如你所做的那樣注入變量是一件危險的事情。 –

回答

1

如果表ttuser有任何沒有默認值的字段,並且您沒有向這些字段提供任何數據(例如,有一個名爲「usalary」的字段沒有包含在INSERT INTO中的默認值語句),MySQL語句將失敗。

聽取許多SQL注入警告:)

+0

感謝您的答案,但我在我的表中唯一的領域是:uname,uemail和urole所以我不認爲我的INSERT INTO語句有問題 – elmify

0

OK的傢伙,這是我的錯,因爲我沒有通過服務器查看的頁面。 感謝您的幫助,這是一個愚蠢的錯誤