2014-12-06 90 views
0

我不知道是否有人可以幫我解決我的問題?我想發送值(輸入文本)到MySQL數據庫,但它始終是空白文本。我是初學者,我覺得我做了愚蠢的錯誤...代碼:添加文本從HTML輸入作爲值到MySQL與PHP

<form name="form" method="get"> 
    <input type="text" name="nick"> 
    <input type="text" name="message" height="300px"> 
</form> 
     <?php 
$servername = "localhost"; 
$username = "root"; 
$password = "xxx"; 
$dbname = "xxxxx"; 

if (isset($_POST['button1'])) 
{ 
$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$nickval = $_POST['nick']; 
$messageval = $_REQUEST['message']; 
$sql = "INSERT INTO Messages (nick, message) 
VALUES ('$_GET[nick]', '$_GET[message]')"; 

if ($conn->query($sql) === TRUE) { 
    echo "OK"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 
$result = mysqli_query($conn,"SELECT * FROM Messages"); 

echo "<table border='1'> 
<tr> 
<th>Nick</th> 
<th>Message</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) 
{ 
echo "<tr>"; 
echo "<td>" . $row['nick'] . "</td>"; 
echo "<td>" . $row['message'] . "</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 
$conn->close(); 
} 
?> 
<form method="POST" action=''> 
<input type="submit" name="button1" value="Send"> 
</form> 
+1

你爲什麼使用$ _POST,$ _REQUEST,還有$ _GET?你的表單方法是'POST',所以你應該只使用'$ _POST'從表單中檢索你的輸入。 – ElefantPhace 2014-12-06 15:39:49

回答

1

此:

<input type="submit" name="button1" value="Send"> 

需要去你的第一種形式,你的其他投入都在裏面。

<form name="form" method="post"> 
    <input type="text" name="nick"> 
    <input type="text" name="message" height="300px"> 
    <input type="submit" name="button1" value="Send"> 
</form> 

而且@Joe T的回答。這個問題很多問題似乎不對

0

你的SQL應該看起來更像這樣,對方的回答也是正確的(有關移動您提交相同的表格裏面按鈕您的輸入)

$nickval = mysqli_real_escape_string ($conn , $_POST['nick']); 
$messageval = mysqli_real_escape_string ($conn , $_POST['message']); 
$sql = "INSERT INTO Messages (nick, message) 
VALUES ('$nickval', '$messageval')"; 

隨着網民寫道,不要使用$ _REQUEST和$ _GET,只有$ _ POST這裏使用。
如果你不逃避你的輸入,(正如我在這裏用mysqli_real_escape_string所做的那樣),你正在尋求一個受到傷害的世界。