Мы сейчас будем разбирать PHP-код для создания комментирования на сайте , где имеется множество страниц, на каждой из которых свои комментарии. Например, таким образом, реализовано у меня. Это самый популярный вариант, когда у каждой страницы (статьи, поста и прочего) свой набор комментариев.
Мы сейчас будем разбирать PHP-код для создания комментирования на сайте, где имеется множество страниц, на каждой из которых свои комментарии. Например, таким образом, реализовано у меня. Это самый популярный вариант, когда у каждой страницы (статьи, поста и прочего) свой набор комментариев.
Первым делом, создаём таблицу в базе данных (пусть она называется comments), где будут храниться комментарии со следующими полями:
- id - уникальный идентификатор.
- page_id - хранится идентификатор той страницы, на которой находится данный комментарий.
- name - имя того, кто оставил комментарий.
- text_comment - текст комментария.
После создания таблицы, давайте создадим HTML-форму, которую нужно будет размещать на каждой странице, где Вы хотите разрешить добавление комментариев:
<form name="comment" action="comment.php" method="post">
<p>
<label>Имя:</label>
<input type="text" name="name" />
</p>
<p>
<label>Комментарий:</label>
<br />
<textarea name="text_comment" cols="30" rows="50"></textarea>
</p>
<p>
<input type="hidden" name="page_id" value="150" />
<input type="submit" value="Отправить" />
</p>
</form>
Единственная особенность данного HTML-кода - это input hidden. В value должен находиться уникальный идентификатор текущей страницы (статьи или поста).
Теперь займёмся обработкой формы. Для этого создаём файл comment.php с таким кодом:
<?php
/* Принимаем данные из формы */
$name = $_POST["name"];
$page_id = $_POST["page_id"];
$text_comment = $_POST["text_comment"];
$name = htmlspecialchars($name);// Преобразуем спецсимволы в HTML-сущности
$text_comment = htmlspecialchars($text_comment);// Преобразуем спецсимволы в HTML-сущности
$mysqli = new mysqli("localhost", "root", "", "db");// Подключается к базе данных
$mysqli->query("INSERT INTO `comments` (`name`, `page_id`, `text_comment`) VALUES ('$name', '$page_id', '$text_comment')");// Добавляем комментарий в таблицу
header("Location: ".$_SERVER["HTTP_REFERER"]);// Делаем реридект обратно
?>
И, наконец, последняя стадия - это вывод комментариев на странице:
<?php
$page_id = 150;// Уникальный идентификатор страницы (статьи или поста)
$mysqli = new mysqli("localhost", "root", "", "db");// Подключается к базе данных
$result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id'"); //Вытаскиваем все комментарии для данной страницы
while ($row = $result_set->fetch_assoc()) {
print_r($row); //Вывод комментариев
echo "<br />";
}
?>
Вот и всё. Безусловно, это лишь база, необходимая для создания возможности комментирования на сайте. Здесь самое минимальное, что придётся сделать - это оформить внешний вид комментариев. Также надо обязательно проверить поступившие данные из формы. Также можно добавить дополнительные поля (например, e-mail ещё запрашивать).
Но всё это уже детали, а комментирование на PHP уже сделано.
