Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Добавление комментариев с премодерацией
Hunter0k  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 37
Пользователь №: 42466
На форуме: 10 месяцев, 7 дней
Карма:




Здравствуйте, у меня не получается сделать премодерацию при добавлении комментариев. Тоесть, если пользователь добавил коммент и пока администратор его не активирует, комментарий не будет виден всем пользователям. Вот весь скрипт модуля:

main.php:
Свернутый текст


<?php
function
COMMENTS() {global $CONNECT, $Module, $Page, $Param;
if ($_SESSION['USER_LOGIN_IN'] != 1 and !$_SESSION['USER_LOGIN']) {
/*Форма коментариев для гостей*/
$Avatar = 0; echo '<br/><a href="#login_form" style="margin-left:50%" id="button">Войти</a>
<br/><br/><img src="/resource/avatar/'
.$Avatar.'.jpg" width="80" height="74" alt="Аватар" align="left" id="avatar" style="cursor:pointer;margin:0 5px 0 0" />
<form method="POST" action="/comments/add/module/'
.$Page.'/id/'.$Param['id'].'">
<textarea id="message" name="text" placeholder="Текст сообщения" maxlength="990" onkeypress="return isNotMax(event)" required></textarea>
<br/><input type="submit" name="enter" value="Отправить" style="margin-left:97px" />
<input type="hidden" name="user_id" value="'
.$_SESSION['USER_ID'].'">
</form>
<br><br>'
;}

/*Форма коментариев для пользователей*/
else {$Avatar = (empty($_SESSION['USER_AVATAR'])) ? 0 : $_SESSION['USER_AVATAR'].'/'.$_SESSION['USER_ID'];
echo '<div><br/><br/><ul id="soc"><li>
<img src="/resource/avatar/'
.$Avatar.'.jpg" width="80" height="74" alt="Аватар" align="left" id="avatar" style="cursor:pointer;margin:0 5px 0 0" />
<ul style="top:-48px"><li><div id="count" style="padding:5px 5px 24px 5px">
<a href="/profile" id="link">Профиль</a><br><a href="/account/logout" id="link">Выход</a>
</li></ul></li></ul>
<form method="POST" action="/comments/add/module/'
.$Page.'/id/'.$Param['id'].'">
<textarea id="message" name="text" placeholder="Текст сообщения" maxlength="990" onkeypress="return isNotMax(event)" required></textarea>
<br/><input type="submit" name="enter" value="Отправить" style="margin-left:97px" />
<input type="hidden" name="user_id" value="'
.$_SESSION['USER_ID'].'" />
</form></div><br/><br/>'
;}
$ID = ModuleID($Page);
$Param['page'] = (!$Param['page']) ? 1 : $Param['page'];

$sql = "SELECT c.`id`, c.`text`, c.user_id, c.`active`, DATE_FORMAT(c.`date`, '%d.%m.%Y, %H:%i:%s') AS date, u.avatar, u.login, u.name, u.group, u.email, u.regdate FROM `comments` AS c LEFT JOIN `users` AS u ON u.id = c.user_id WHERE c.`module` = $ID AND c.`material` = '".$Param['id']."' ORDER BY c.`id` DESC";
$Result = mysqli_query($CONNECT, $sql) or die( mysqli_error($CONNECT) );
while ($Row = mysqli_fetch_assoc($Result)) {
if (!$Row['active'] and $_SESSION['USER_GROUP'] != 2 and $Row['id']) $wait='<span> (Комментарий ожидает модерации)</span>';
/*Активация коментов*/ if (!$Row['active'] != $_SESSION['USER_ID'] and $Row['user_id'] OR $_SESSION['group'] == 2) $Active = ' [ <a href="/comments/control/id/'.$Row['id'].'/command/active">Активировать</a> ]';
/*Управление коментами*/ $Admin = ''; if ($_SESSION['USER_ID'] == $Row['user_id'] OR $_SESSION['group'] == 2) $Admin = ' [ <a href="/comments/control/action/edit/id/'.$Row['id'].'">Редактировать</a> ] [ <a href="#del">Удалить</a> ]<a href="" class="overlay" id="del"></a>
<div id="popup" style="margin-top:-37px;min-height:3em"><hr id="hr" />
<p id="logtext" style="font-size:13pt;margin:9px 0 9px 0">Предупреждение</p>
<h4>Вы действительно хотите удалить?</h4>
<div id="yes"><br/><a href="/comments/control/action/delete/id/'
.$Row['id'].'" id="yes">Да </a><a href="#1" id="no">Нет</a></div></div>';

// Если есть настройка позволяющая редактировать комментарии.
if ($Row['id'] == $_SESSION['COMMENTS_EDIT'])
$Row['text'] = '<form method="POST" action="/comments/control">
<textarea id="comedit" name="text" placeholder="Текст сообщения" maxlength="990" onkeypress="return isNotMax(event)" required>'
.$Row['text'].'</textarea>
<br/><input type="submit" name="save" value="Сохранить" /> <input type="submit" name="cancel" value="Отменить" /></form>'
;
$Avatar = (empty($Row['avatar'])) ? 0 : $Row['avatar'].'/'.$Row['user_id'];
$Info = (empty($Row['name'])) ? '<b id="name">Аноним</b>' : '
<! --Информация о пользователе-- >
<span id="spoiler" tabindex="1"><a>'
.$Row['name'].'</a>
<div class="spoiler">
<b>Группа:</b> ('
.UserGroup($Row['group']).')
<br/><b>Имя:</b> '
.$Row['name'].'
<br/><b>E-mail:</b> '
.HideEmail($Row['email']).'
<br/><b>Дата регистрации:</b> '
.$Row['regdate'].'</p>
<a href="" style="position:relative;top:-83px;left:293px" id="close"></a>
</div></span>'
;

echo '<img src="/resource/avatar/'.$Avatar.'.jpg" width="60" height="60" alt="Аватар" align="left" id="avatar" />
<div id="comments" style="margin-left:70px">'
.$Info.$wait.'
<span style="float:right">'
.$Row['date'].$Admin.$Active.'</span><br/>'.$Row['text'].'</div><br/>';
}}
?>



add.php:
Свернутый текст


<?php
if ($_SESSION['USER_GROUP'] == 2) $Active = 1;
else $Active = 0;

if ($_POST['enter'] and $_POST['text']) {
$_POST['text'] = FormChars($_POST['text']);
$ID = ModuleID($Param['module']);
if ($ID == 1)
$Table = 'publ';
else
if
($ID == 2)
$Table = 'loads';
else
if
($ID == 3)
$Table = 'addons';

$Row = mysqli_fetch_assoc(mysqli_query($CONNECT, 'SELECT `id` FROM `'.$Table.'` WHERE `id` = '.$Param['id']));
if (!$Row['id'])
MessageSend(1, 'Материал не найден.', '/'.$Param['module']);
$sql = "INSERT INTO `comments` SET `material` = ".$Param['id'].", `module` = $ID, `added` = '".$_SESSION[USER_LOGIN]."', `text` = '".$_POST['text']."', `date` = NOW(), `user_id` = '".(int)$_POST['user_id']."', `active` = $Active";
mysqli_query($CONNECT, $sql) or die( mysqli_error($CONNECT) );
MessageSend(3, 'Комментарий добавлен.', '/'.$Param['module'].'/material/id/'.$Param['id']);
}
?>



control.php:
Свернутый текст


<?php
if ($Param['action'] == 'delete') {
mysqli_query($CONNECT, "DELETE FROM `comments` WHERE `id` = $Param[id]");
MessageSend(3, 'Комментарий удален.');

} else if ($Param['action'] == 'edit') {
$_SESSION['COMMENTS_EDIT'] = $Param['id'];
exit(header('location: '.$_SERVER['HTTP_REFERER']));

} else if ($_POST['save']) {
mysqli_query($CONNECT, "UPDATE `comments` SET `text` = '$_POST[text]' WHERE `id` = $_SESSION[COMMENTS_EDIT]");
unset($_SESSION['COMMENTS_EDIT']);
MessageSend(3, 'Коментарий отредактирован.');

} else if ($_POST['cancel']) {
unset($_SESSION['COMMENTS_EDIT']);
MessageSend(3, 'Редактирование отмененно.');

} else if ($Param['command'] == 'active') {
mysqli_query($CONNECT, "UPDATE `comments` SET `active` = 1 WHERE `id` = $Param[id]");
MessageSend(3, 'Комментарий активирован', '/addons/material/id/'.$Param['id']);
}
?>



База данных phpmyadmin:
Свернутый текст


id - int
material - int
module - int
added - varchar
text - mediumtext
date - datetime
user_id - int
active - int

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22693
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 29 дней
Карма: 599




Hunter0k
Где код запроса выборки из БД комментариев для вывода?


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Hunter0k  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 37
Пользователь №: 42466
На форуме: 10 месяцев, 7 дней
Карма:





$sql = "SELECT c.`id`, c.`text`, c.user_id, c.`active`, DATE_FORMAT(c.`date`, '%d.%m.%Y, %H:%i:%s') AS date, u.avatar, u.login, u.name, u.group, u.email, u.regdate FROM `comments` AS c LEFT JOIN `users` AS u ON u.id = c.user_id WHERE c.`module` = $ID AND c.`material` = '".$Param['id']."' ORDER BY c.`id` DESC";
$Result = mysqli_query($CONNECT, $sql) or die( mysqli_error($CONNECT) );
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22693
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 29 дней
Карма: 599




На модерации, как я понял, active = 0, а прошли модерацию - active =1. Вот и добавь условие в запрос выбирать только те, что прошли модерацию для вывода.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Hunter0k  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 37
Пользователь №: 42466
На форуме: 10 месяцев, 7 дней
Карма:




А как это прописать? Я прост в php не силен вообще.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22693
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 29 дней
Карма: 599




Свернутый текст
Ну началось. Каждый день одно и то же.

Назвать учебники по изучению PHP + MySQL ?

Это сообщение отредактировал inpost - 31.03.2016 - 01:41


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Hunter0k  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 37
Пользователь №: 42466
На форуме: 10 месяцев, 7 дней
Карма:




Ну пжалуста, не всеж такие програмисты)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22693
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 29 дней
Карма: 599




Ну раз уж так сильно просишь, хотя я бы и так дал, то вот ссылочка на озон, но если достанешь её каким-то другим способом, то это всё только на твоей совести smile.gif
http://www.ozon.ru/context/detail/id/4030251/
http://www.ozon.ru/context/detail/id/29828302/
http://www.ozon.ru/context/detail/id/4251390/


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Hunter0k  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 37
Пользователь №: 42466
На форуме: 10 месяцев, 7 дней
Карма:




Спс, обязательно закажу, а можно по коду обьяснить, что прописать в запрос?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22693
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 29 дней
Карма: 599




Hunter0k
Ну так я же уже ответил. Готовый код не даём, ты попробуй сам сделать. Тут такое дело, если ты программист или учишься на программиста, то мы тебе рады, все поможем.
А вот если ты хитрый заказчик, который зажал 100 рублей своему программисту на правки и решил, что зайдет на форум, где ему на шару будут код писать, то тут ты глубоко ошибся. Помогают халявщикам очень редко. Форум программистов для программистов и тех, кто учится на программиста.

Под "я куплю" я увидел фразу: "я сейчас его обману, а сам получу халявный код и мне поставят ЗАЧЁТ по предмету, вот я и забью на ПХП".

Если не хочешь учиться и делать подобное сам, то я предлагаю тебе опубликовать данное задание в разделе "Проекты", там за деньги найдутся специалисты, которые подправят код так, чтобы он работал.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса