Повтор комментариев после обновления страницы, как избавиться?
Внизу форма добавления комментариев с первым в жизни кодом php. После обновления страницы идет повтор комментариев в Базе данных. С начала хотел поставить редирект, теперь хочется переделать при помощи AJAX, но не знаю где найти похожий пример.
require "includes/config.php";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Блог IT_Минималиста!</title>
<!-- Bootstrap Grid -->
<link rel="stylesheet" type="text/css" href="/media/assets/bootstrap-grid-only/css/grid12.css">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" rel="stylesheet">
<!-- Custom -->
<link rel="stylesheet" type="text/css" href="/media/css/style.css">
</head>
<body>
<div id="wrapper">
<?php include "includes/header.php"; ?>
<?php
$article = mysqli_query($connection, "SELECT * FROM `articles` WHERE `id` = " . (int) $_GET['id']);
if ( mysqli_num_rows($article) <= 0 )
{
?>
<div id="content">
<div class="container">
<div class="row">
<section class="content__left col-md-8">
<div class="block">
<h3>Статья не найдена!</h3>
<div class="block__content">
<div class="full-text">
Запрашиваемая Вами статья не существует!
</div>
</div>
</div>
</section>
<section class="content__right col-md-4">
</section>
</div>
</div>
</div>
<?php
} else
{
$art = mysqli_fetch_assoc($article);
//обновление кол-ва просмотров, после обновления страницы добавляется 1+один просмотр!
mysqli_query($connection, "UPDATE `articles` SET `views` = `views` + 1 WHERE `id` = " . (int) $art['id']);
?>
<div id="content">
<div class="container">
<div class="row">
<section class="content__left col-md-8">
<div class="block">
<a><?php echo $art['views']; ?> просмотров</a>
<h3><?php echo $art['title']; ?></h3>
<div class="block__content">
<img src="/static/images/<?php echo $art['image']; ?>" style="max-width: 100%;">
<div class="full-text"><?php echo $art['text']; ?></div>
</div>
</div>
<div class="block">
<a href="#comment-add-form">Добавить свой комментарий!</a>
<h3>Комментарии</h3>
<div class="block__content">
<div class="articles articles__vertical">
<?php
$comments = mysqli_query($connection, "SELECT * FROM `comments` WHERE `articles_id` = " . (int) $art['id'] . " ORDER BY `id` DESC");
//<!--выбрать самые новые из коментариев к этой статье ! -->
?>
<?php
if ( mysqli_num_rows($comments) <= 0 )
{
echo "К этой статье нет комментариев!";
}
while( $comment = mysqli_fetch_assoc($comments) )
{
?>
<article class="article">
<!-- в урле даем путь в папки картинки,перенаправляем на сервис граватар-->
<div class="article__image" style="background-image: url(https://www.gravatar.com/avatar/<?php echo md5($comment['email']); ?>?s=125);"></div>
<div class="article__info">
<!--выводим имя автора, как написал в базе author, так и вывел! -->
<a href="/article.php?id=<?php echo $comment['articles_id']; ?>"><?php echo $comment['author']; ?></a>
<div class="article__info__meta"></div>
<!--Выводим полностью текст комментариев -->
<div class="article__info__preview"><?php echo $comment['text']; ?></div>
</div>
</article>
<?php
}
?>
</div>
</div>
</div>
<?php
$errors = array();
$name = trim($_POST['name']);
$nickname = trim($_POST['nickname']);
$email = trim($_POST['email']);
$text = trim($_POST['text']);
$name = htmlspecialchars($name);
$nickname = htmlspecialchars($nickname);
$email = htmlspecialchars($email);
$text = htmlspecialchars($text);
if(isset($_POST['submitone']))
{
if( $name == '' )
{
$errors[] = 'Введите имя!';
}
if( $nickname == '' )
{
$errors[] = 'Введите Ваш никнейм!';
}
if( $email == '' )
{
$errors[] = 'Введите Email!';
}
if( ($text) == '' )
{
$errors[] = 'Введите текст комментария!';
}
}
if (empty($errors) )
{ // добавить комментарий в бд
$result = mysqli_query($connection, "INSERT INTO `comments` (`author`,`nickname`,`email`,`text`,`pubdate`,`articles_id`) VALUES ('".$name."', '".$nickname."', '".$email."', '".mysqli_real_escape_string($connection,$text)."', NOW(), '".$art['id']."')");
// if ($result == true)
// {
// echo json_encode(array())
// }
echo '<span style="color: green;font-weight: bold;margin-bottom: 10px;display: block;">Комментарий успешно добавлен!</span>';
}
else
{
//вывести ошибку на экран
echo '<span style="color: red;font-weight: bold;margin-bottom: 10px;display: block;">'. $errors['0'] .'</span>';
}
}
?>
<!-- форма добавления комментариев,рабочая можно перевести на английский, изменить цвет и продать на еванто !-->
<div class="block" id="comment-add-form">
<h3>Добавить комментарий</h3>
<div class="block__content">
<form class="form" method="POST" action="/article.php?id=<?php echo $art['id']; ?>#comment-add-form">
<div class="form__group">
<div class="row">
<div class="col-md-4">
<!-- value= "вырезал <?php echo $_POST['name']; ?>"!-->
<input type="text" class="form__control" name="name" placeholder="Имя" value="">
</div>
<div class="col-md-4">
<input type="text" class="form__control" name="nickname" placeholder="Никнейм" value="" >
</div>
<div class="col-md-4">
<!-- вырезал value="<?php echo $_POST['email']; ?>" присвоеное значение для исключения повтора формы комментариев !-->
<input type="text" name="email" class="form__control" placeholder="Email (не будет показан)" value="" >
</div>
</div>
</div>
<div class="form__group">
<!--вырезал ?php echo $_POST['text'];в треугол кавычках ? межу тегами textarea для предотвращения повторов отзывов ! мало помогло при обновлении идет занесение в БД двух одинаковых комментариев-->
<textarea name="text" class="form__control" placeholder="Текст комментария ..." value=""></textarea>
</div>
<div class="form__group">
<input type="submit" class="form__control" name="submitone" value="Добавить комментарий!" >
<!--вырезал value="Добавить комментарий"!-->
</div>
</form>
</div>
</div>
</section>
<section class="content__right col-md-4">
<!-- выход из папки и вход в другую(подключение)сайдбара -->
<?php include "includes/sidebar.php/sidebar.php";
?>
</section>
</div>
</div>
</div>
<!-- подключение футера подвала -->
<?php include "includes/footer.php"; ?>
</div>
</body>
</html>