[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как прицепить аватары к комментариям пользователей
Страницы: 1, 2
Kusss
Hunter0k
смотри личку
Hunter0k
Все, вопрос решен, большое спасибо Kusss. Вот готовый код:

Модуль комментариев 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="width:80px;margin-left:50%;background: #133423;padding:0 5px 0 5px;border-radius:15px;border:2px solid #888">Войти</a>
<br/><br/><div><img src="/resource/avatar/'
.$Avatar.'.jpg" width="80" height="74" alt="Аватар" align="left" id="avatar" style="cursor:pointer" />
<form method="POST" action="/comments/add/module/'
.$Page.'/id/'.$Param['id'].'">
<textarea id="message" name="text" placeholder="Текст сообщения" 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>'
;
}

/*Форма коментариев для пользователей*/
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" />
<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="Текст сообщения" 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,
DATE_FORMAT(c.`date`, '%d.%m.%Y, %H:%i:%s') AS date,
u.avatar, u.login, u.name, u.group
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)) {

$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="/comments/control/action/delete/id/'.$Row['id'].'">Удалить</a> ]';

// Если есть настройка позволяющая редактировать комментарии.
if ($Row['id'] == $_SESSION['COMMENTS_EDIT'])
$Row['text'] = '
<form method="POST" action="/comments/control">
<textarea id="comedit" name="text" placeholder="Текст сообщения" required>'
.$Row['text'].'</textarea>
<br>
<input type="submit" name="save" value="Сохранить">
<input type="submit" name="cancel" value="Отменить">
</form>
'
;


mysqli_query($CONNECT, "SELECT `id`, `name`, `email`, `regdate`, `group`, `avatar` FROM `users` WHERE `login` = '$Module'");

$Avatar = (empty($Row['avatar'])) ? 0 : $Row['avatar'].'/'.$Row['user_id'];
$profil = (empty($Row['name'])) ? 'Аноним' : '<a href="/adm-prof/'.$Row['login'].'">'.$Row['name'].'</a>';

echo '
<img src="/resource/avatar/'
.$Avatar.'.jpg" width="60" height="60" alt="Аватар" align="left" id="avatar" />
<div id="comments">
<span>
'
.$profil.'
<p>'
.$Row['date'].$Admin.'</p>
</span>
<div>'
.$Row['text'].'</div>
</div>
'
;
}
}

?>



Файлик Add.php
Свернутый текст


<?php


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';

$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']."'
"
;
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, 'Редактирование отмененно.');
}
?>




Таблица Базы данных `comments`:
Свернутый текст


id int AUTO_INCREMENT
material int
module int
added varchar(30)
text mediumtext
date datetime
user_id int

Быстрый ответ:

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