Итак, я пытаюсь создать эту форму, но не могу ввести данные в таблицу. Всякий раз, когда я нажимаю кнопку «Продолжить», на самом деле ничего не происходит. Я не получаю ошибку или что-то еще. и когда я проверяю свою базу данных, значения не были добавлены. Не знаю, как это происходит. Я часами пытался понять, в чем проблема, но я не могу ее определить, и дошло до того, что я почувствовал себя безнадежным и решил опубликовать этот вопрос, поэтому, пожалуйста, помогите мне. Вот мой код:
<?php
$conn = new mysqli("localhost", "root", "", "KFC");
if(isset($_POST['Submit_btn']))
{
session_start();
$RID= $_POST['R_ID'];
$Name= $_POST['Name'];
$S_Description=($_POST['S_Description']);
$L_Description=($_POST['L_Description']);
$Nutritional_value=($_POST['Nutritional_value']);
$Cost=($_POST['Cost']);
$TypeOfMeal=($_POST['TypeOfMeal']);
$SubmittedBy=($_POST['SubmittedBy']);
$sql= "INSERT INTO `recipe`(`R_ID`, `Name`, `S_Description`, `L_Description`, `Nutritional_value`, `Cost`, `TypeOfMeal`, `SubmittedBy`) VALUES ($RID,$Name,$S_Description,$L_Description,$Nutritional_value,$Cost,$TypeOfMeal,$SubmittedBy)";
mysqli_query($conn,$sql);
}
mysqli_close($conn);
?>
<html>
<body>
<div id="bodyContent">
<h1> Registration </h1>
</div>
<form method="post">
<table>
<tr>
<td>R_ID: </td>
<td>
<input type="text" name="R_ID" class="textInput">
</td>
</tr>
<tr>
<td>Name: </td>
<td>
<input type="text" name="Name" class="textInput">
</td>
</tr>
<tr>
<td>Small Description: </td>
<td>
<input type="text" name="S_Description" class="textInput">
</td>
</tr>
<tr>
<td>Long Description: </td>
<td>
<input type="text" name="L_Description" class="textInput">
</td>
</tr>
<tr>
<td>Nutritional value: </td>
<td>
<input type="text" name="Nutritional_value" class="textInput">
</td>
</tr>
<tr>
<td>Cost: </td>
<td>
<input type="number" name="Cost" class="textInput">
</td>
</tr>
<tr>
<td>Type Of Meal: </td>
<td>
<input type="text" name="TypeOfMeal" class="textInput">
</td>
</tr>
<tr>
<td>UserID: </td>
<td>
<input type="Number" name="SubmittedBy" class="textInput">
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="Submit_btn" value="Continue">
</td>
</tr>
</table>
</form>
</body>
</html>
Ваш код уязвим для SQL-инъекций и будет взломан, даже если вы экранируете ввод! Вместо этого используйте Подготовленные отчеты.
«Я не получаю ошибку или что-то в этом роде» — вы не проверяете ошибку. Если запрос не выполнен,
mysqli_query()
вернетfalse
, и вы можете получить дополнительную информацию о почему не удалось выполнить, просмотрев результатmysqli_error()
.Кроме того, почему вы добавляете круглые скобки вокруг переменных
$_POST
?«Я не получаю сообщение об ошибке или что-то в этом роде», я не вижу, чтобы в вашем коде была включена функция error_reporting.
у вас есть привычка получать решения и убегать?
@FunkFortyNiner На все вопросы, которые я разместил, включая этот, я не получил ответа, который решил бы мою проблему. Я не хочу использовать людей, используя их решения, а затем убегая. Не думайте обо мне идиотских вещей, не зная, о чем вы говорите. Спасибо.