Форма модерации комментариев к темам
Данная тема является дополнением к теме Форма добавления комментариев к темам.
В данной теме мы рассмотрим PHP код, позволяющий модерировать комментарии, оставленные посетителями сайта через форму добавления комментариев к темам.
Предлагаемый PHP код для модерации комментариев следует добавить в Вашу админ панель, либо поместить в отдельный файл, доступный по паролю.
Чтобы понять о какой форме модерации комментариев к темам идет речь, обратите внимание на скриншот, приведенный ниже:
Форма модерации комментариев к темам.
Для получения формы модерации комментариев, как на скриншоте выше, поместите следующий код в Вашу админ панель в самом начале, сразу после подключения к MySQL:
<?php
if (isset($_GET[del])) {
$result=mysql_query("DELETE FROM comment WHERE id='".$_GET[del]."' LIMIT 1", $link);
header("Location: adminka.php");
}
if (isset($_GET[ok])) {
$result = mysql_query("UPDATE comment SET moderation=1
WHERE id='".$_GET[ok]."' LIMIT 1", $link);
header("Location: adminka.php");
}
if ($_POST[comment_user]!="") {
$result = mysql_query("UPDATE comment SET message='".$_POST[comment_user]."'
WHERE id='".$_POST[comment_id]."' LIMIT 1", $link);
header("Location: adminka.php");
}
?>
Данный код отвечает за изменение, показ или удаление комментариев посетителей.
В том месте, где Вы планируете выводить форму модерации комментариев к темам, поместите следующий код в Вашу админ панель:
<?php
echo '<div align="center">';
$result=mysql_query("SELECT * FROM comment WHERE moderation=0 ORDER BY id", $link);
$number=mysql_num_rows($result);
if ($number>0) {
for ($n=1; $n<=$number; $n++) {
$comments=mysql_fetch_array($result);
echo '<table border="0" width="730"
style="border: 1px solid #4874a3;" bgcolor="#e7e7e7">';
echo '<tr align="center"><td width="200"><b>'.$comments[login].'</b></td>';
echo '<td width="200">'.$comments[theme].'</td>';
echo '<td width="160">'.$comments[date].'</td><td width="80"></td>';
echo '<tr><td colspan="3"><form method="POST" action="adminka.php">';
echo ' <textarea cols="75" rows="5" name="comment_user">'.$comments[message].
'</textarea></td>';
echo '<td colspan="4" align="center"><input type="hidden" name="comment_id"
value='.$comments[id].'><input type="submit" value="Изменить"></form><br><br>';
echo '<a href="adminka.php?del='.$comments[id].'">Удалить</a><br><br>';
echo '<a href="adminka.php?ok='.$comments[id].'">Показать</a></td></tr>';
echo '</table><br>';
}
}
else echo '<b>Новых комментов нет!</b><br>';
echo '</div>';
?>
В приведенных нами PHP кодах предполагается, что данный код будет размещен в файле adminka.php. Если Вы поместите данный код в файл с другим именем, то замените в коде adminka.php на имя Вашего файла.
Обращаем Ваше внимание на то, что в выше приведенных кодах некоторые строчки кода были разорваны и перенесены из-за своей длины. Данные строчки следует писать в одну строку. Также следует учитывать, что на каждый комментарий будет создана своя отдельная форма для модерации. Если Вы хотите модерировать по одному комментарию в порядке их добавления, то измените строчку:
$result=mysql_query("SELECT * FROM comment WHERE moderation=0 ORDER BY id", $link);
на такую:
$result=mysql_query("SELECT * FROM comment
WHERE moderation=0 ORDER BY id LIMIT 1", $link);
где LIMIT 1 означает, что выводить следует по одному комментарию. При необходимости данное число можно изменить.
После добавления на свой сайт всех выше приведенных кодов у Вас должна получиться точно такая же форма для оставления комментариев к темам как на скриншоте в самом начале.
Перед публикацией все комментарии проходят обязательную модерацию!
Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
1. Ссылка, по которой Вы перешли, неверна.
2. Вы неправильно указали путь или название файла/страницы.
3. Файл или страница были удалены со времени Вашего последнего посещения."
Подскажите, что может быть ни так? И таблицы в БД создал все перепроверил, не понимаю, как и куда отправляются данные на обработку... и что делать?
Будьте добры поясните подробнее насчет 1 и 2 метода, в mysql знаю пока только как создавать базы данных, поэтому и легкая проблема кажется тяжелой.
Заранее благодарен.
Долго не отвечал...
Насчет сообщения #2296 - все понятно, вопрос в другом, как вызывать и подключать adminka.php? Просьба пояснить, так как admin панели нет, если она была бы, то все понятно, а как в этом случае быть.
С уважением, Алексей.
mysql_select_db("Имя_базы", $link);
Ну а дальше просто обращаетесь к созданному файлу так: site.ru/adminka.php.
Скажите, а можно ли в админке сделать так, чтобы комменты сразу появлялись, а админу приходило письмо о появлении новых комментариев. Затем админ заходит в админку и правит их, если надо. Пусть бы там сохранялись комменты за одну-две недели, или все к данной странице... а не как сейчас - только не прошедшие модерацию. Я понимаю, что можно отключить модерацию, но зачем тогда админка, какова её роль в этом случае? ...если модерировать придётся заходя на сервер.
Думаю, надо доработать скрипт... Если у вас уже есть готовые решения - напишите, плиз...
$result=mysql_query("SELECT * FROM comment WHERE moderation=0 ORDER BY id", $link);
использовать:
$result=mysql_query("SELECT * FROM comment WHERE date>CURDATE()-INTERVAL 15 DAY ORDER BY id", $link);
Таким образом, в админке будут отображаться все комментарии за последние 15 дней.
И заодно хочу спросить, может быть у вас уже есть на сайте готовый код, для админки, чтобы эта страница открывалась по логину и паролю? Я не нашёл. Если нет, может быть сделаете такую тему? Очень пригодилась бы, думаю многим.
Чтобы пометить, добавьте в код вывода: if ($comments[moderation]==1) echo 'Проверен!';