[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите доработать Гостевую книгу
vinniw
Здорово! Недавно начал изучать PHP, написал Гостевую книгу с использованием БД. Но сообщения появляются сразу на сайте, а нужно сделать так, чтобы тока после проверки модератором. То есть когда пользователь вводит своё сообщение, нажимает Отправить, ему выдавалось сообщение типа: Ваше сообщение будет добавлено после проверки модератором... ну что-то в этом роде. А потом админ заходит в свою панель, видит, что там сообщение, требующее модерации. Если хочет, принимает, если нет, то отклоняет. Как это сделать? Как это можно реализовать? Помогите, буду благодарен.



Спустя 6 минут, 12 секунд (22.03.2010 - 20:56) Adil написал(а):
В базу данных заносишь еще одну таблицу, например status.
При добоавлении новых сообщений, у сообщений status равняется 0.
Далее если админ в админке позволяет опубликовать ее, то статус сообщения становится 1.

И на сайте выводишь все сообщения WHERE `status` = 1

Спустя 1 минута, 41 секунда (22.03.2010 - 20:58) vinniw написал(а):
Спасибо! Тока вот как это все реализовать? Как админку сделать?

Спустя 3 минуты, 44 секунды (22.03.2010 - 21:02) Adil написал(а):
Ты ведь написал добавление и вывод сообщений из базы данных. Так? В чем сложности как сделать админку? Говори свои идеи, мысли, примеры! А мы поможем.

Спустя 3 минуты, 39 секунд (22.03.2010 - 21:05) vinniw написал(а):
В админке нужно сделать вывод всех сообщений. При нажатии на сообщение должна появляться форма с двумя полями: имя и текст, чтобы можно было отредактировать, а ещё одно поле: ОДОБРИТЬ или ОТКЛОНИТЬ. Так?))

Спустя 2 минуты, 46 секунд (22.03.2010 - 21:08) Adil написал(а):
Правильно! Щас имитируем ситуацию: отклонить. Что происходит? И куда ведет нажатие?

Спустя 1 минута, 51 секунда (22.03.2010 - 21:10) vinniw написал(а):
переменная удаляется?

Спустя 4 минуты, 56 секунд (22.03.2010 - 21:15) Adil написал(а):
Нет, зачем переменная?
Допустим делаем ссылку на кнопку одобрить такого вида(это просто пример):
/comments.php?show=yes&id=8


Далее в скрипте проверяем, пришел ли параметр $_GET['show'].


Что дальше?

Спустя 6 минут, 7 секунд (22.03.2010 - 21:21) vinniw написал(а):
if ($_GET['show] == true)
{
echo "Сообщение одобрено";
}


Тока сильно не ругайся... Я новичок...

Спустя 5 минут, 43 секунды (22.03.2010 - 21:27) Adil написал(а):
Правильно мыслишь. Только не true, а yes
И получается вот такой вот кодик:
<?php
if ($_GET['show'] == 'yes'){
$id = (int)$_GET['id'];
$sql = 'UPDATE `table` SET `status` = 1 WHERE `id` ='.$id;
mysql_query($sql) or die(mysql_error());
}
?>


P.S. если следовать правилам форума, то никто тут никого не ругает.

Спустя 4 минуты, 19 секунд (22.03.2010 - 21:31) vinniw написал(а):
объясни код, пожалуйста, а-то я чуть-чуть не догоняю...

Спустя 3 минуты, 33 секунды (22.03.2010 - 21:34) Adil написал(а):
if ($_GET['show'] == 'yes'){

здесь мы проверяем нужно ли какой-то сообщение показать? Т.е. допустить чтобы все видели.

$id = (int)$_GET['id'];

тут id сообщения, который мы модерируем присваиваем переменной $id. также перед ним пишем (int), что приведет его к численному типу, это нужно для того чтобы нам ничего не могли подсунуть, хоть это и админка лишняя защита всеравно не помешает.

	$sql = 'UPDATE `table` SET `status` = 1 WHERE `id` ='.$id;
mysql_query($sql) or die(mysql_error());

составляем sql запрос, надеюсь ты знаешь как их составлять и выполняем.

Спустя 2 минуты, 50 секунд (22.03.2010 - 21:37) vinniw написал(а):
Спасибо огромное! Ща попробую это все реализовать!!! Слушай, братка, у тя агент или ася есть?)

Спустя 1 минута, 53 секунды (22.03.2010 - 21:39) Adil написал(а):
Я бы с радостью дал, но я не смогу тебе так по нему постоянно помогать, тк параллельно делаю свои дела. Ты тут оставляй сообщения, так как если кто-то занят, то другой тебе ответит. Тут многие помогают.

Спустя 3 минуты, 9 секунд (22.03.2010 - 21:42) vinniw написал(а):
и ещё одно скажи мне, плииз: А в таблице как создать это поле? Проверочное?

Спустя 4 минуты, 11 секунд (22.03.2010 - 21:47) Adil написал(а):
Ты как создаешь? Вручную или например черезе phpmyadmin? Советую тебе использовать его для удобства. Но если хочешь, то вот тебе сгл код:

ALTER TABLE `table` ADD `status` ENUM( '0', '1' ) DEFAULT '0' NOT NULL ;


Где:
table- название твоей таблицы
status- название поля для модерирования
ENUM( '0', '1' )- возможные значения этого поля
DEFAULT '0' - по умолчанию не показывать новые сообщения, если оставить поле status пустым.

Спустя 11 минут, 34 секунды (22.03.2010 - 21:58) vinniw написал(а):
я через phpmyadmin
первое поле ID INT auto_increment Первичное
потом table var(20)
потом status var(20)
а с ENUM( '0', '1' ) и DEFAULT '0' как? Выручи!!! Я очень долго с этим мучаюсь

Спустя 12 минут, 52 секунды (22.03.2010 - 22:11) Adil написал(а):
Зайди в phpmyadmin в свою таблицу. Сверху нажми sql. И введи там код который я дал выше. Только имя таблицы не забудь поменять на свой.

Вообще у тебя уже есть поле status? Тогда оставь так как есть.

Спустя 5 минут, 12 секунд (22.03.2010 - 22:16) vinniw написал(а):
Создал! Запрос прошел! попытаюсь разобраться... хотя нелегко будет. И тя я уже достал, наверное

Спустя 2 минуты, 30 секунд (22.03.2010 - 22:19) Adil написал(а):
Нет. Всегда рады помочь тем кто сам пытается себе помочь. Когда будешь задавать вопросы, желательно приводи в пример листинг своего кода. И обрамляй тэгами.

Спустя 11 минут, 27 секунд (22.03.2010 - 22:30) vinniw написал(а):
Я хотел создать сценарий, который удаляет сообщения из базы. фоздал файл del.php
вот код
<?php

$db = mysql_connect("localhost", "php", "1111");
mysql_select_db ("book", $db);


?>
<form action="del2.php" method="POST">
<?php
$id = $_POST['id'];
$name = $_POST['name'];
$text = $_POST['text'];




$b = mysql_query("SELECT * FROM msg");
$c = mysql_fetch_array($b);
if (!$id)

{
do
{

printf("<p><input type='checkbox' name=%s>%s</p>", $c['id'], $c['name']);
} while ($c = mysql_fetch_array($b));


}
else
{

$aa = mysql_query("DELETE FROM msg WHERE id='$id'");
if ($aa == true)
{
echo "Сообщение удалено";
}
}








?>
<input type="submit" value="Удалить">
</form>



Примерно каким должен быть обработчик?

Я как-то делал такое. Но ща подзабыл(((

Спустя 5 минут, 33 секунды (22.03.2010 - 22:36) Adil написал(а):
Ты по Попову учился? Сначало прочитай вот это:
http://phpforum.ru/index.php?showtopic=21916

Это ради твоего блага.

Спустя 4 минуты, 1 секунда (22.03.2010 - 22:40) vinniw написал(а):
а ты как к нему относишься?

Спустя 2 минуты, 34 секунды (22.03.2010 - 22:42) phz написал(а):
Про него уже много тем было..

http://phpforum.ru/index.php?showtopic=25507
http://phpforum.ru/index.php?showtopic=19020

Нечего хорошего..

Спустя 2 минуты, 58 секунд (22.03.2010 - 22:45) vinniw написал(а):
Посоветуй мне какую-нибудь книгу или ещё что-нибудь по PHP

Спустя 3 минуты, 4 секунды (22.03.2010 - 22:48) Adil написал(а):
Могу посоветовать хороший ресурс:
http://irbis-team.com/15

Спустя 15 секунд (22.03.2010 - 22:49) phz написал(а):

Спустя 6 минут, 51 секунда (22.03.2010 - 22:55) vinniw написал(а):
phzА ты сам по каким книгам учил? И вообще за сколько времени реально освоить PHP?

Спустя 10 минут, 16 секунд (22.03.2010 - 23:06) phz написал(а):
Я еще учу... форум phpforum.ru классная книга для меня, php.net. Есть книга у меня Количниченко Д.Н, ну что-то не очень она мне.
За 300 дней по 12 часов без выходных) Что это всех интересует время обучения? Кто как... кому как.

http://phpforum.ru/index.php?showtopic=5185
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.