Я делаю упражнение из книги PHP & MYSQL в простых шагах. Он включает форму HTML для обновления строки в базе данных, а затем различные скрипты PHP для проверки входных данных для HTML-кода и преобразования их в безопасный формат. Однако код просто не работает так, как написано в книге. Я пошел на веб-сайт издателя и загрузил пример кода, но без радости.PHP и безопасные формы
Вместо формы с именем строки под ней вместо этого я получаю форму, а затем ниже «Нет действительного нового имени». Затем под этим текущим именем строки в таблице, которую я хочу изменить. Когда я пытаюсь ввести и отправить данные в форму, это не имеет значения. Он отображает точно ту же страницу. Код ниже.
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ensuring security
</title>
</head>
<body>
<form action="secure.php" method="POST">
<p>New Name : <input type="text" name="name">
<input type="submit"></p></form>
<?php
require('../connect_db.php');
if (!empty($POST['name']) && !is_numeric($_POST['name'])) {
$name = $POST['name'];
$name = mysqli_real_escape_string($dbc, $name);
$name = strip_tags($name);
$q = 'UPDATE towels SET name "' . $name . '" WHERE id= 1';
mysqli_query($dbc, $q);
} else {
echo 'No valid new name submitted';
}
$q = 'SELECT * FROM towels WHERE id = 1 ';
$r = mysqli_query($dbc, $q);
while ($row = mysqli_fetch_array($r, MYSQLI_NUM)) {
echo "<p>Name : $row[1] </p>";
}
mysqli_close($dbc);
Буду признателен за любые идеи по этому вопросу. Я провел около 3 часов и был на сайте издателей, но я все еще нахожусь на первом месте.
Получить другую книгу. Тот, который преподает [подготовленные заявления] (http://php.net/manual/en/pdo.prepared-statements.php). (Не говоря уже о сочетании HTML и PHP, который делает материал нечитаемым и неподъемным.) –
Вы используете 'mysqli' неправильно. Вы должны подготовить инструкцию, а затем использовать ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить значение' $ name'. Использование конкатенации строк чрезвычайно опасно, поскольку простая ошибка может быть разрушительной. Если вы изучаете эту технику из книги, ваша книга сломана. Я с Бартом здесь, возьму новую книгу. – tadman
Для начала, измените все '$ POST' на' $ _POST' –