2012-10-13 59 views
2

我見過類似的問題,但沒有答案對我有用。 Mine是一個簡單的表單,它包含一些數據到數據庫中,並在網站的其他位置顯示。表單插入空白行到數據庫

但是,表單只是向數據庫添加一個空白行,不管輸入什麼內容。沒有錯誤或任何東西,只是一個空白的行。

我有另一種形式,提交給另一個表,完美的作品,所以我很困惑。

這裏是形式:

<form method="GET" action="addsuggestion.php"> 

<label>Game Title:</label> 
<input type="text" name="gamename" id="gamename" /> 

<br /> 

<label>Game Platform:</label> 
<input type="text" name="gameplatform" id="gameplatform" /> 
<br /> 

<label>Suggestor Nickname:</label> 
<input type="text" name="suggestor" id="suggestor" /> 

<input type="submit" value="sumbit" /> 
</form> 

而且addsuggestion.php

<?php 
echo'<h1>Suggestion Process</h1>'; 

$connection = mysql_connect("removed", "removed", "removed") or die("Couldn't Connect!"); 
mysql_select_db("removed") or die("Couldn't find database!") ; 

$gamename = $GET['gamename']; 
$gameplatform = $GET['gameplatform']; 
$suggestor = $GET['suggestor']; 

$query = "INSERT INTO sug (gamename,gameplatform, suggestor) VALUES ('$gamename','$gameplatform','$suggestor')"; 

$result = mysql_query($query) or die ("Error in query"); 
echo'Submisson accepted, click <a href="recent.php">here</a> to check it out!'; 
?> 

我得到提交接受消息和行添加到數據庫中,但它始終是空白。最近的php將數據庫顯示爲一張表,並有一個新的空行。

有一個我用作主鍵的id,但它是自動增量,所以我沒有包含它。這是每次都包含某些內容的唯一字段。

+1

[不要使用過時的'mysql_ *'功能(http://stackoverflow.com/q/12859942/19068) – Quentin

+2

[不要打開自己SQL注入像即](http://bobby-tables.com/)。 – Quentin

+0

你有標籤元素,但他們沒有'for'屬性,他們裏面沒有'input',所以他們毫無價值。 – Quentin

回答

4

這是$_GET$GET

$gamename = mysql_real_escape_string($_GET['gamename']); 
$gameplatform = mysql_real_escape_string($_GET['gameplatform']); 
$suggestor = mysql_real_escape_string($_GET['suggestor']); 
+0

是的,也強烈建議你逃避$ _GET變量。這樣你就可以打開自己的SQL注入。 –

+0

@Phoenix_yay完全同意你:) – GBD

+0

感謝您的回答。我將該方法更改爲$ _POST,並添加了mysql_escape_string,但仍然是所有以空行添加到數據庫中的唯一字段,其中包含任何內容的自動增量ID。 – user1743734

1

你的形式方法是 「GET」。這應該是「POST」。

還與變量,改變進入$ _ POST [「gamename」]等

也實在是區分大小寫的。確保表格不是用大寫字母寫的。

祝你好運!

編輯額外信息:

我們可以說,「GET」,基本上是剛剛開始,而「POST」(檢索)數據可能涉及任何問題,例如存儲或更新數據,或訂購產品,或發送電子郵件。

來源:http://www.cs.tut.fi/~jkorpela/forms/methods.html#fund

+0

感謝您的回答。我將該方法更改爲$ _POST,並添加了上面推薦的人員的mysql_escape_string,但仍然是所有以空行添加到數據庫中的唯一字段,其中包含任何內容的唯一字段是自動增量ID。 – user1743734

+0

嘗試var_dump($ _ POST)...如果它返回您輸入的值,則問題在於將其插入到數據庫中。如果沒有,問題是從表單中提取它。 – NoobishPro