Модерация комментариев на сайте
Данная тема является дополнением к теме Добавление комментариев на сайт и содержит PHP код, предназначенный для работы с комментариями из той темы.
Данная тема мало чем отличается от темы Форма модерации комментариев к темам, но все же в ней есть некоторые изменения.
Далее мы рассмотрим код, позволяющий модерировать (изменять, удалять или публиковать) сообщения, оставленные посетителями сайта через форму добавления комментариев к темам сайта.
Предлагаемый нами PHP код для модерации комментариев Вам следует добавить в админ панель Вашего сайта, либо поместить в отдельный файл, доступный только по паролю.
Ниже приведен скриншот формы модерации комментариев, которая должна получиться у Вас в результате использования кода из данной темы.
Форма модерации комментариев.
Для получения точно такой же формы модерации комментариев, оставленных к темам, как на скриншоте выше, поместите следующий код в Вашу админ панель или отдельно созданный PHP файл, недоступный другим пользователям:
<?php
$db=mysqli_connect("localhost","Ваш_логин","Ваш_пароль","Имя_базы") or die();
$res=mysqli_query($db,"set names utf8");
if (isset($_GET["del"])) {
$res=mysqli_query($db,"DELETE FROM comment WHERE id='".$_GET["del"]."'");
header("Location: adminka.php");
}
if (isset($_GET["ok"])) {
$res=mysqli_query($db,"UPDATE comment SET moderation=1 WHERE id='".$_GET["ok"]."'");
header("Location: adminka.php");
}
if ($_POST["com"]!='') {
$res=mysqli_query($db,"UPDATE comment
SET message='".htmlspecialchars($_POST["com"])."' WHERE id='".$_POST["com_id"]."'");
header("Location: adminka.php");
}
?>
Данный код отвечает за модерацию (изменение, удаление и опубликование) оставленных посетителями комментариев.
В том месте админ панели или отдельно созданного PHP файла, где Вы планируете выводить оставленные посетителями сообщения и форму модерации оставленных комментариев к темам сайта, поместите следующий код:
<?php
echo '<div align="center">';
$res=mysqli_query($db,"SELECT * FROM comment WHERE moderation=0 ORDER BY id LIMIT 5");
$num=mysqli_num_rows($res);
if ($num>0) {
while ($com=mysqli_fetch_array($res)) {
echo '<table style="border:1px solid #000; margin:5px; background-color:#eee;">';
echo '<tr align="center"><td width="190"><b>'.$com["login"].'</b></td>';
echo '<td width="200">id темы - '.$com["theme_id"].'</td>';
echo '<td width="170">'.date('H:i:s d.m.Y', $com["date"]).'</td><td></td>';
echo '<tr align="center"><td colspan="3"><form method="POST" action="adminka.php">';
echo '<textarea cols="70" rows="5" name="com">'.$com["message"].'</textarea></td>';
echo '<td colspan="4"><input type="hidden" name="com_id" value='.$com["id"].'>';
echo '<input type="submit" value="Изменить"></form><br><br>';
echo '<a href="adminka.php?del='.$com["id"].'">Удалить</a><br><br>';
echo '<a href="adminka.php?ok='.$com["id"].'">Показать</a></td></tr></table>';
}
}
else echo '<b>Новых комментариев нет!</b><br>';
echo '</div>';
?>
В PHP кодах выше предполагается, что они будут размещены в файле adminka.php.
Если Вы поместите рассмотренные коды в файл с другим именем, то не забудьте заменить в обоих кодах adminka.php на новое имя Вашего файла.
Обращаем Ваше внимание на то, что на каждый комментарий создается своя отдельная форма для модерации. Если Вы хотите изменить количество одновременно видимых комментариев в порядке их добавления, то измените в строчке:
$res=mysqli_query($db,"SELECT * FROM comment WHERE moderation=0 ORDER BY id LIMIT 5");
значение LIMIT 5 на необходимое Вам количество одновременно доступных комментариев.
После добавления на свой сайт выше приведенных PHP кодов у Вас должна получиться точно такая же форма для модерации оставленных комментариев к темам сайта, как и на скриншоте в начале данной темы.
Перед публикацией все комментарии проходят обязательную модерацию!
Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Кодировка формы модерации windows-1251.
PHP Fatal error: Call to undefined function mysqli_query() in D:\adminka.php on line 4 PHP Stack trace: PHP 1. {main}() D:\adminka.php:0
вот это строка 4
$res=mysqli_query($db,"SELECT * FROM comment WHERE moderation=0 ORDER BY id LIMIT 5");