Задание 56. PHP
0
Помогите разобраться,
не понятно почему при обновлении страницы player.php,
не вводя при этом ничего в форму, данные в базу добавляются сами,
то есть добавляется последние введенные данные.
ВОТ КОД СТРАНИЦЫ:
<?php
$name = $_POST['name'];
$author = $_POST['author'];
$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');
if (mysqli_connect_errno()) {
print_f("Соединение не установлено", mysql_connect_error());
exit();
}
$mysqli->set_charset('utf8');
$query = $mysqli->query ('SELECT * FROM musika');
while ($row = mysqli_fetch_assoc($query)) {
echo $row['name']." - ".$row['author']."<br>";
}
if (isset($name, $author)) {
//Вставляем данные, подставляя их в запрос
$query = "INSERT INTO musika VALUES (null, '$name', '$author')";
$mysqli->query($query);
// Если вставка прошла успешно
if ($mysqli) {
echo "<p>Данные успешно добавлены в таблицу.</p>";
} else {
echo "<p>Произошла ошибка.</p>";
}
}
$mysqli->close();
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="" method="POST">
<div>Название</div><input type="text" name="name" placeholder="название песни">
<div>Автор</div><input type="text" name="author" placeholder="исполнитель">
<input type="submit" value="Отправить">
</form>
<br>
</body>
</html>
Что не так, в чем проблема в коде ???
2 ответов
3
Похожий вопрос уже задавался здесь:
https://fructcode.com/ru/qa/pochemu-pri-kajdom-obnovlenii-tablisi/
Быстрое решение, для того, чтобы каждый раз не вставлялись данные из html-формы через POST, нужно использовать где insert следующий код:
if($mysqli->query($query)) { // Если выполнился query
// Здесь редирект
header("Location: " . $_SERVER['REQUEST_URI']);
exit();
}
1
student_9vRGlZif
если возможно разьясните в коде:
if($mysqli->query($query)) { // Если выполнился query
// Здесь редирект
header("Location: нужно-ли здесь что-то вставлять" .
$_SERVER['REQUEST_URI нужно-ли здесь что-то вставлять']);
exit();
}
Заранее благодарен
if($mysqli->query($query)) { // Если выполнился query
// Здесь редирект
header("Location:ЗДЕСЬ НУЖНО ЧТО_ТО ВСАВЛЯТЬ " . $_SERVER['REQUEST_URI']);
exit();
}
//'REQUEST_URI' это тоже всавлять как есть