2014-12-06 19 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所做的那样),你正在寻求一个受到伤害的世界。