ALEX8998 Ответов: 2

Обратите внимание: неопределенный индекс: содержание в C:\xampp\htdocs\test\admin\insert_post.php на линии 9


Когда я нажимаю кнопку Отправить она показывает ошибку выше

Что я уже пробовал:

<?php
include "db1.php";
include "config.php";

$db = new database();

if (isset($_POST['submit'])){
	$title = $_POST['title'];
	$content = $_POST['content'];
$query = "INSERT INTO posts(title,content) VALUES('$title',$content')";

$run=$db->insert($query);

}

?>



<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>

</body>
</html>

<form action="insert_post.php" method="post" enctype="multipart/form-data">
	<div class="form-group">
	<center><table width="800" align="center" border="2">
		<tr bgcolor="orange">
		<td colspan="6"><h1 style="text-align:center">Post EDIT</h1></td>
		</tr>
		<tr>
			<td align="right" bgcolor="orange">Post title:</td>
			<td><input type="text" name="title" size="60"></td>
		</tr>
		<tr>
			<td align="right" bgcolor="orange">Post Content:</td>
			<td><textarea name="content" rows="15" cols="40"></textarea></td>
		</tr>
     <tr>

	<td colspan="6" align="center" bgcolor="orange"><input type="Submit" name="submit" value="Publish Now"  /></td>
</tr>	






	</table>

Jochen Arndt

Сообщение об ошибке совершенно ясно:
В массиве $_POST нет записи с индексом 'content'.

При вызове этой функции из формы убедитесь, что имеется поле ввода с именем "содержимое".

2 Ответов

Рейтинг:
17

ThilinaMD

Согласно вашему представленному коду в строке 9 есть синтаксическая ошибка

$query = "INSERT INTO posts(title,content) VALUES('$title',$content')";

Это должно измениться как
$query = "INSERT INTO posts(title,content) VALUES('$title','$content')";

Причина, по которой вы пропустили цитату раньше $content


Рейтинг:
1

Patrice T

$query = "INSERT INTO posts(title,content) VALUES('$title',$content')";

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]