добавление текста из HTML-ввода в качестве значения в MySQL с переполнением стека

Интересно, кто-нибудь может мне помочь с моей проблемой? Я хочу отправить значение (входной текст) в базу данных MySQL, но это всегда пустой текст. Я новичок, и я думаю, что сделал глупую ошибку … Код:

<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>

0

Решение

Это:

<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. Многие проблемы не так с этим вопросом кажется

1

Другие решения

Ваш 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), вы попросите обидеть мир.

0

По вопросам рекламы [email protected]