Вход Регистрация
Файл: 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']>=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']<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']<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'])<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');
?>
Онлайн: 1
Реклама