Файл: php-zona.ru/modules/news/comm.php
Строк: 105
<?php
//Обозначаем титл
$title='Комментарии';
//Инклюдим шапку
include_once($_SERVER["DOCUMENT_ROOT"].'/style/head.php');
//Фильруем переданный id
$_GET['id']=abs(intval($_GET['id']));
//Если записей в таблице news с колонкой id равной переданному id, то
if($db->query("SELECT * FROM `news` WHERE `id`='".$_GET['id']."'")->num_rows==0){
//Выводим ошибку
?>
<div class="error">
Новости не существует!
</div>
<?
//Инклюдим ноги
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
//Завершаем выполнение скрипта
exit();
}
//Если передан параметр ok, то
if(isset($_GET['ok'])){
//Выводим собщенире об удачной операции
?>
<div class="success">Комментарий успешно добавлен</div>
<?
}
?>
<div class="title">Комментарии</div>
<?
//Создаем кейс
switch($_GET['act']){
//По умлочанию
default:
//Создаем асоциативный массив новости
$news = $db->query("SELECT * FROM `news` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
//Если была нажата кнопка добавить комментарий
if(isset($_POST['ok'])){
//Фильтруем данные с формы
$_POST['comm']=guard($db->real_escape_string($_POST['comm']));
if(empty($_POST['comm'])){
$error = 'Введите текст комментария!';
}elseif(mb_strlen($_POST['comm'])<2){
$error = 'Текст комментария должен быть более двух символов!';
}elseif(mb_strlen($_POST['comm'])>4000){
$error = 'Текст комментария не должен быть более 4000 символов!';
}
if(isset($error)){
?>
<div class="error"><?=$error?></div>
<?
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
exit();
}
//Добавляем в БД
$db->query("INSERT INTO `news_comm` SET `id_news`='".$_GET['id']."', `id_us`='".$user['id']."', `text`='".$_POST['comm']."', `time`='".time()."'");
//Перекидываем юзера на страницу
header('location:/news_comm/'.$_GET['id'].'?ok');
}
//Выводим новость
?>
<div class="text">
<b><?=$news['name']?></b><br/>
<?=$news['text']?><br/>
Автор: <?=nick($news['author'])?><br/>
Новость создана: <?=times($news['time'])?>
</div>
<div class="title">Комментарии (<?=$db->query("SELECT * FROM `news_comm` WHERE `id_news`='".$_GET['id']."'")->num_rows?>)</div>
<?
if(isset($user['id'])){
?>
<form action="" method="POST">
<div class="text">
<a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
<textarea name="comm" placeholder="Введите комментарий..."></textarea><br/>
<input type="submit" name="ok" value="Добавить">
</div>
</form>
<?
}else{
?>
<div class="error">Добавлять комментарии могут только авторизованные пользователи</div>
<?
}
$nav=new navig("SELECT * FROM `news_comm` WHERE `id_news`='".$_GET['id']."'");
$comm=$db->query('SELECT * FROM `news_comm` WHERE `id_news`='.$_GET['id'].' ORDER BY `id` DESC LIMIT '.$nav->start.','.$nav->nstr);
while($c=$comm->fetch_assoc()){
?>
<div class="text">
<?=nick($c['id_us'])?><br/>
<?=times($c['time'])?><br/>
<?=output($c['text'])?><br/>
<?
if(isset($user['id']) && $c['id_us']!=$user['id']){
?>
<a href="?act=reply&cid=<?=$c['id']?>">[Отв.]</a>
<?
}
if($user['level']>=1 or $c['id_us']==$user['id']){
?>
<a href="/news_comm/<?=$_GET['id']?>?act=del&comm=<?=$c['id']?>">[Уд.]</a> <a href="/news_comm/<?=$_GET['id']?>?act=edit&comm=<?=$c['id']?>">[Ред.]</a>
<?
}
?>
</div>
<?
}
if($db->query("SELECT * FROM `news_comm` WHERE `id_news`='".$_GET['id']."'")->num_rows==0){
?>
<div class="error">
Комментариев нет!
</div>
<?
}
?>
<div class="nvgstr">
<?
$nav->panel();
?>
</div>
<?
break;
case 'del':
$_GET['comm']=abs(intval($_GET['comm']));
if($db->query("SELECT * FROM `news_comm` WHERE `id`='".$_GET['comm']."'")->num_rows==0){
$error='Комментария не существует!';
}
$comm = $db->query("SELECT * FROM `news_comm` WHERE `id`='".$_GET['comm']."'")->fetch_assoc();
if($user['level']<1 AND $comm['id_us']!=$user['id']){
$error = 'Ошибка доступа!';
}
if(isset($error)){
?>
<div class="error"><?=$error?></div>
<?
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
exit();
}
$db->query("DELETE FROM `news_comm` WHERE `id`='".$_GET['comm']."'");
header('location:/news_comm/'.$_GET['id']);
break;
case 'edit':
$_GET['comm']=abs(intval($_GET['comm']));
if($db->query("SELECT * FROM `news_comm` WHERE `id`='".$_GET['comm']."'")->num_rows==0){
$error='Комментария не существует!';
}
$comm = $db->query("SELECT * FROM `news_comm` WHERE `id`='".$_GET['comm']."'")->fetch_assoc();
if($user['level']<1 AND $comm['id_us']!=$user['id']){
$error = 'Ошибка доступа!';
}
if(isset($error)){
?>
<div class="error"><?=$error?></div>
<?
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
exit();
}
if(isset($_POST['ok'])){
$_POST['comm']=guard($db->real_escape_string($_POST['comm']));
$db->query("UPDATE `news_comm` SET `text`='".$_POST['comm']."' WHERE `id`='".$_GET['comm']."'");
?>
<div class="success">Комментарий успешно изменен</div>
<?
}
$comm=$db->query("SELECT * FROM `news_comm` WHERE `id`='".$_GET['comm']."'")->fetch_assoc();
?>
<div class="text">
<form action="" method="POST">
<a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
Текст комментария:<br/>
<textarea name="comm"><?=$comm['text']?></textarea><br/>
<input type="submit" name="ok" value="Изменить">
</form>
</div>
<?
break;
case 'reply':
$_GET['cid'] = abs(intval($_GET['cid']));
if($db->query("SELECT * FROM `news_comm` WHERE `id`='".$_GET['cid']."'")->num_rows==0){
error('Коментария не существует!');
}
$comm = $db->query("SELECT * FROM `news_comm` WHERE `id`='".$_GET['cid']."'")->fetch_assoc();
$nick = $db->query("SELECT * FROM `users` WHERE `id`='".$comm['id_us']."'")->fetch_assoc();
if($nick['id']==$user['id']){
error('Самому себе отвечать нельзя!');
}
if(isset($_POST['ok'])){
$_POST['comm'] = guard($db->real_escape_string($_POST['comm']));
if(empty($_POST['comm'])){
error('Введите текст комментария!');
}elseif(mb_strlen($_POST['comm'])<2 or mb_strlen($_POST['comm'])>4000){
error('Комментарий должен быть не менее двух и не более 4000 символов!');
}
$db->query("INSERT INTO `news_comm` SET `id_news`='".$comm['id_news']."', `id_us`='".$user['id']."', `text`='".$_POST['comm']."', `time`='".time()."'");
$db->query("INSERT INTO `notifications` SET `id_us`='".$nick['id']."', `time`='".time()."', `section`='news_comm', `sender`='".$user['id']."', `text`='ответил вам в комментариях к [url=http://".$_SERVER["HTTP_HOST"]."/news_comm/".$comm['id_news']."]новости[/url]'");
header('location:/news_comm/'.$comm['id_news']);
}
?>
<div class="title">Ответ на комментарий</div>
<div class="text">
<a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
<form action="" method="POST">
<textarea name="comm"><?=$nick['nick']?>, </textarea><br/>
<input type="submit" name="ok" value="Ответить">
</form>
</div>
<?
break;
}
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
?>