@iiideb
Пишу роботов на html

Почему дублируются комментарии php?

Когда обновляю страницу, то комментарий сам добавляется в БД (mysql) и выводится на странице, при чем тот комментарий, который был написан последним. В чём дело?
<!DOCTYPE html>
<html lang="ru">
<head>
	<?php
	require_once "sqlconnect.php";
			$sql = 'SELECT * FROM `articles` WHERE `id` = :id';
			$id = $_GET['id'];
			$query= $pdo->prepare($sql);
			$query->execute(['id'=> $id]);
			$article = $query->fetch(PDO::FETCH_OBJ);
			
	$website_title = 'Главная';
	require "blocks/head.php" ?>
</head>
<body>
	<? require "blocks/header.php" ?>



<main class="container mt-5">
	<div class="row">
		<div class="col-md-8 mb-3">
			<div class="jumbotron">
				<h1><?=$article->title?></h1>
					<p><b>Автор статьи: </b><mark><?=$article->autor?></p></mark>
					<?php
						$date = date("d ", $article->date);
						$array= [
							"января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа","сентября","октября", "ноября", "декабря"
						];
						$date .= $array[date('n', $article->date) - 1];
						$date .= date(' H:i', $article->date);
					?>
				<p><b>Время публикации: </b><u><?=$date?></p></u>
				<p>
					<?=$article->intro?>
					<br><br>
					<?=$article->text?>
				</p>
			</div>	

			<h3 class="mt-5">Комментарии</h3>

			<form action="/news.php?id=<?=$_GET['id']?>" method="POST">

				<label>Сообщение</label>
				<textarea type="text" name="message" class="form-control col-md-6" id="message"></textarea>

				<input type="submit" class="btn btn-success mt-2 mb-4" id="mess_send" value="Добавть комментарий">
			</form>
		<?php
			if($_POST['message']!=''){
				$mess = trim(filter_var($_POST['message'], FILTER_SANITIZE_STRING));
				
				$sql = 'INSERT INTO comms(username, message, article_id) VALUES(?,?,?)';
				$query = $pdo->prepare($sql);
				$query->execute([$_COOKIE['log'], $mess, $_GET['id']]);
			}

			$sql = 'SELECT * FROM `comms` WHERE `article_id` = :id ORDER BY `id`';
			$query = $pdo->prepare($sql);
			$query->execute(['id' => $_GET['id']]);
			$comments = $query->fetchAll(PDO::FETCH_OBJ);

			foreach ($comments as $comment) {
				echo "<div class='alert alert-info mb-4'>
						<h4>$comment->username</h4>
						<p>$comment->message</p>
					</div>";
			}

		?>
		</div>
		<? require "blocks/aside.php" ?>
	</div>
</main>
	

<? require "blocks/footer.php" ?>

</body>
</html>


sqlconnect.php
<?php
	$user = 'root';
	$pass = '';
	$db = 'users';
	$host = 'localhost';

	$dsn = 'mysql:host='.$host.';dbname='.$db;
	$pdo = new PDO($dsn, $user, $pass);
	
?>
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 1
@coderiter
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы