Вход Регистрация
Файл: CMS/guest/index.php
Строк: 214
<?php
define
('CMS',TRUE);
define('ROOT','../');
require(
'../core/inc.php');

$id = !empty($_GET['id']) ? (int) $_GET['id'] : 0;
$mod = !empty($_GET['m']) ? (string) $_GET['m'] : '';
$page = !empty($_GET['page']) ? (int) $_GET['page'] : 1;
$error '';

# Добавление сообщения
if (!empty($_POST['addbook'])) {

    
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';

    
$_SESSION['captcha_key'] = !empty($_SESSION['captcha_key']) ? $_SESSION['captcha_key'] : NULL;
    
$_SESSION['captcha_failures'] = !empty($_SESSION['captcha_failures']) ? $_SESSION['captcha_failures'] : 0;
    
$_SESSION[SP]['crc32'] = !empty($_SESSION[SP]['crc32']) ? $_SESSION[SP]['crc32'] : NULL;

    if (
$is_logged) {

      if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

        if (
cms_strlen($msg) >= && cms_strlen($msg) < $config['guest_max_text']) {

          if ( 
crc32($msg) <> $_SESSION[SP]['crc32'] ) {

            if (
is_quarantine($log) || $config['add_guest_book'] == 1) {

              if (
is_flood($log)) {

                
$_SESSION[SP]['crc32'] = crc32($msg);

                
$msg antimat($msg);
                
$msg smiles($msg);

                
$db->query("UPDATE ?_users SET `users_allguest` = (`users_allguest` + 1), `users_point` = (`users_point` + 1), `users_money` = (`users_money` + 5) WHERE `users_login` = ?;"$config['guest_add_point'], $config['guest_add_money'], $log);

                
$db->query("INSERT INTO ?_guest (`guest_user`, `guest_text`, `guest_ip`, `guest_brow`, `guest_time`) 
                            VALUES (?, ?, ?, ?, ?);"
$log$msg$ip$browSITE_TIME);

                
$db->query("DELETE FROM ?_guest WHERE `guest_time` < (SELECT MIN(`guest_time`) FROM (SELECT `guest_time` FROM ?_guest ORDER BY `guest_time` DESC LIMIT " $config['guest_max_post'] . ") AS del);");

                
$inSes->addMessage('Сообщение успешно добавлено!''ok');

                
gen_red('index'''RND);
              }
              else 
$error 'Антифлуд! Разрешается отправлять сообщения раз в ' flood_period() . ' секунд!';
            }
            else 
$error 'Карантин! Вы не можете писать в течении ' round($config['allow_karantin'] / 3600) . ' часов!';
          }
          else 
$error 'Ошибка! Ваше сообщение <u>уже было</u> добавлено!';
        }
        else 
$error 'Ошибка! Слишком длинное или короткое сообщение!';
      }
      else 
$error 'Ошибка! Неверный идентификатор сессии, повторите действие!';

    }
    else if (
$config['add_guest_book'] == 1) {

        
$code = !empty($_POST['code']) ? num($_POST['code']) : 0;

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

          if (!empty(
$_SESSION['captcha_key']) && $_SESSION['captcha_key'] == $code) {

            if ( 
check_referer() ) {

              if (
cms_strlen($msg) >= && cms_strlen($msg) < $config['guest_max_text']) {

                if ( 
crc32($msg) <> $_SESSION[SP]['crc32'] ) {

                  if (
is_flood($log)) {

                    
$_SESSION[SP]['crc32'] = crc32($msg);

                    
$msg antimat($msg);
                    
$msg smiles($msg);

                    
$db->query("INSERT INTO ?_guest (`guest_user`, `guest_text`, `guest_ip`, `guest_brow`, `guest_time`) 
                                VALUES (?, ?, ?, ?, ?);"
$config['guest_name'], $msg$ip$browSITE_TIME);

                    
$db->query("DELETE FROM ?_guest WHERE `guest_time` < (SELECT MIN(`guest_time`) FROM (SELECT `guest_time` FROM ?_guest ORDER BY `guest_time` DESC LIMIT " $config['guest_max_post'] . ") AS del);");

                    
$_SESSION['captcha_key']      = NULL;
                    
$_SESSION['captcha_failures'] = 0;

                    
$inSes->addMessage('Сообщение успешно добавлено!''ok');

                    
gen_red('index'''RND);
                  }
                  else 
$error 'Антифлуд! Разрешается отправлять сообщения раз в ' flood_period() . ' секунд!';
                }
                else 
$error 'Ошибка! Ваше сообщение <u>уже было</u> добавлено!';
              }
              else 
$error 'Ошибка! Слишком длинное или короткое сообщение!';
            }
            else 
$error 'Ошибка! Реферер не определен в вашем браузере. Пожалуйста, активируйте опцию передачи реферера.';
          }
          else 
$error 'Ошибка! Проверочное число не совпало с данными на картинке!';
        }
        else 
$error 'Ошибка! Неверный идентификатор сессии, повторите действие!';
    }
    else {

        
$error 'Вы не авторизованы, чтобы добавить сообщение, необходимо';
    } 

    if (!empty(
$error)) $inSes->addMessage($error'error'); 


switch(
$mod):
  default:

    
show_header('Гостевая книга');
    echo 
'<div class="b"><a href="#down">' icon('down.png') . '</a> ';
    echo 
'<a href="' gen_uri('index'''RND) . '">Обновить</a>';

    if (
is_admin()) {
        echo 
' | <a href="' gen_admin('?m=guest') . '">Управление</a>';
    } 
    echo 
'</div>';

    if (!empty(
$mod) && in_array($mod,array('code','smiles','rules'))):

        include( 
MODULES_PATH $mod '.inc.php' );

    else:

    
$onpage = !empty($config['book_num']) ? num($config['book_num']) : 10;

    if (
$page 1$from = ($page 1) * $onpage; else $from 0;

    
$rows $db->selectPage$total"SELECT * FROM ?_guest ORDER BY `guest_time` DESC LIMIT ?d, ?d"$from$onpage );

    if (!empty(
$rows) && $total 0) {

        foreach(
$rows as $row) {

            echo 
'<div class="b">';
            echo 
'<div class="img">' user_avatars($row['guest_user']) . '</div>';

            if (
$is_logged && $log == $row['guest_user'] && $row['guest_time'] + 600 SITE_TIME) {

                echo 
'<div class="right"><a href="' gen_uri('edit'$row['guest_id'], 'page=' $page) . '">Редактировать</a></div>';
            }
            if (!empty(
$log) && $log != $row['guest_user']) {

                echo 
'<div class="right">';
                echo 
'<a href="' gen_uri('reply'$row['guest_id'], 'page=' $page) . '">Отв</a> | ';
                echo 
'<a href="' gen_uri('quote'$row['guest_id'], 'page=' $page) . '">Цит</a>';
                echo 
'</div>';
            }

            if (
$row['guest_user'] == $config['guest_name']) {

                echo 
'<b>' $row['guest_user'] . '</b> <small>(' get_date($row['guest_time']) . ')</small>';
            }
            else {

                echo 
'<b>' users_anketa($row['guest_user']) . '</b> <small>(' get_date($row['guest_time']) . ')</small><br />';
                echo 
user_title($row['guest_user']) . ' ' user_online($row['guest_user']);
            }
            echo 
'<br />';


            echo 
nl2br(bb_code($row['guest_text'])) . '<br />';

            if (!empty(
$row['guest_edit'])) {

                echo 
'<img src="/images/icons/exclamation_small.gif" alt="" /> ';
                echo 
'<small>Отредактировано: ' nickname($row['guest_edit']) . ' (' get_date($row['guest_edit_time']) . ')</small><br />';
            }

            if (!empty(
$row['guest_reply'])) {

                echo 
nl2br(bb_code($row['guest_reply'])) . '<br />';
            }

            if (!empty(
$config['anonymity'])) {

                echo 
'<span class="data">(' $row['guest_brow'] . ', ' $row['guest_ip'] . ')</span><br />';
            }
            echo 
'</div>';
        }

        echo 
show_pages('index''''p');
    }
    else {

        
show_error('Сообщений нет, будь первым!');
    }

    endif;

    if (
$is_logged) {

        
$form = new cmsForm('?rnd=' $_SESSION['token'], 'post'' name="form" id="form"');
        
$form->addTextarea('Сообщение:''text'request('text'));
        echo 
$form->Submit('Написать''addbook');
        unset(
$form);
    }
    else if (
$config['add_guest_book'] == 1) {

        
$form = new cmsForm('?rnd=' $_SESSION['token'], 'post'' name="form" id="form"');
        
$form->addTextarea('Сообщение:''text'request('text'));
        
$form->addCaptcha('Проверочный код:''code'gen_uri('index'''RND));
        echo 
$form->Submit('Написать''addbook');
        unset(
$form);
    }
    else {
        
show_login('Вы не авторизованы, чтобы добавить сообщение, необходимо');
    } 

    echo 
'<div class="b">';
    echo 
'<a href="#up">' icon('up.png') . '</a> ';
    echo 
'<a href="' gen_uri('rules') . '">Правила</a> | ';
    echo 
'<a href="' gen_uri('smiles') . '">Смайлы</a> | ';
    echo 
'<a href="' gen_uri('code') . '">Теги</a><br /></div>';

  break;
  case 
'reply':

    
show_header('Ответ на сообщение');

    if (
$is_logged) {

      
$post $db->selectRow("SELECT * FROM ?_guest WHERE `guest_id` = ? LIMIT 1;"$id);

      if (!empty(
$post)) {

        echo 
'<div class="b" style="min-height:30px;">';
        echo 
'<div class="img">' user_avatars($post['guest_user']) . '</div>';

        if (
$post['guest_user'] == $config['guest_name']) {
            echo 
'<b>' $post['guest_user'] . '</b> <small>(' get_date($post['guest_time']) . ')</small>';
        } else {
            echo 
'<b>' users_anketa($post['guest_user']) . '</b> <small>(' get_date($post['guest_time']) . ')</small><br />';
            echo 
user_title($post['guest_user']) . ' ' user_online($post['guest_user']);
        }
        echo 
'</div>';
        echo 
'<div class="b">Сообщение: ' nl2br(bb_code($post['guest_text'])) . '</div>';
        if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
        else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );
        
$form = new cmsForm(gen_uri('index''p' $page'rnd=' $_SESSION['token']), 'post'' name="form" id="form"');
        
$form->addCode(blink('*') . ' Сообщение: <small>[<a href="' gen_uri('reply'$id'smiles=1') . '">Смайлы</a>] ');
        
$form->addCode('[<a href="' gen_uri('reply'$id'code=1') . '">ББ-коды</a>]</small>');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
        
$form->addTextarea('''text''[b]' nickname($post['guest_user']) . '[/b] '' id="msg" style="width:98%;"');
        echo 
$form->Submit('Ответить''addbook');
        unset(
$form);
      }
      else {

        
show_error('Ошибка! Выбранное вами сообщение для ответа не существует!');
      } 
    }
    else {

      
show_login('Вы не авторизованы, чтобы отвечать на сообщения, необходимо');
    } 
    echo 
'<div class="b">' icon('return.png') . ' <a href="' gen_uri('index''p' $pageRND) . '">Вернуться</a><br /></div>';

  break;
  case 
'quote':

    
show_header('Цитирование');

    if (
$is_logged) {

      
$post $db->selectRow("SELECT * FROM ?_guest WHERE `guest_id` = ? LIMIT 1;"$id);

      if (!empty(
$post)) {

        if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
        else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );
        
$post['guest_text'] = nosmiles($post['guest_text']);
        
$post['guest_text'] = preg_replace('|[q](.*?)[/q](<br />)?|'''$post['guest_text']);
        
$post['guest_text'] = str_replace(array('<br>''<br/>''<br />'), "n"$post['guest_text']);
        
$text '[q][b]' nickname($post['guest_user']) . '[/b] (' get_date($post['guest_time']) . ')';
        
$text .= "n" $post['guest_text'] . "[/q]n";
        
$form = new cmsForm(gen_uri('index''p' $page'rnd=' $_SESSION['token']), 'post'' name="form" id="form"');
        
$form->addCode(blink('*') . ' Сообщение: <small>[<a href="' gen_uri('quote'$id'smiles=1') . '">Смайлы</a>] ');
        
$form->addCode('[<a href="' gen_uri('quote'$id'code=1') . '">ББ-коды</a>]</small>');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
        
$form->addTextarea('Сообщение:''text'$text' id="msg" style="width:98%;"');
        echo 
$form->Submit('Цитировать''addbook');
        unset(
$form);
      }
      else {

        
show_error('Ошибка! Выбранное вами сообщение для ответа не существует!');
      } 
    }
    else {

      
show_login('Вы не авторизованы, чтобы отвечать на сообщения, необходимо');
    }
    echo 
'<div class="b">' icon('return.png') . ' <a href="' gen_uri('index''p' $pageRND) . '">Вернуться</a><br /></div>';

  break;
  case 
'edit':

    if (
$is_logged) {

      
$post $db->selectRow("SELECT * FROM ?_guest WHERE `guest_id` = ? AND `guest_user` = ? LIMIT 1;"$id$log);

      if (!empty(
$post)) {

        if (
$post['guest_time'] + 600 SITE_TIME) {

          if (!empty(
$_POST['submit'])) {

            
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';

            if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

              if (
cms_strlen($msg) >= && cms_strlen($msg) < $config['guest_max_text']) {

                
$msg antimat($msg);
                
$msg smiles($msg);

                
$db->query("UPDATE ?_guest SET `guest_text` = ?, `guest_edit` = ?, `guest_edit_time` = ? 
                            WHERE `guest_id` = ?;"
$msg$logSITE_TIME$id);

                
$inSes->addMessage('Сообщение успешно отредактировано!''ok');

                
gen_red('index''p' $pageRND);

              }
              else 
$inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
            }
            else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
          }

          
show_header('Поправка сообщения');
          
$post['guest_text'] = nosmiles($post['guest_text']);
          
$post['guest_text'] = str_replace(array('<br>''<br/>''<br />'), "n"$post['guest_text']);
          
$post['guest_text'] = html_entity_decode($post['guest_text'], ENT_QUOTES'UTF-8');
          echo 
'<div class="b"> <b>' nickname($post['guest_user']) . '</b> <small>(' get_date($post['guest_time']) . ')</small><br /></div>';
          if (!empty(
$_GET['code'])) include( MODULES_PATH 'code.inc.php' );
          else if (!empty(
$_GET['smiles'])) include( MODULES_PATH 'smiles.inc.php' );
          
$form = new cmsForm(gen_uri('edit'$id'page=' $page '&amp;rnd=' $_SESSION['token']), 'post'' name="form" id="form"');
          
$form->addCode(blink('*') . ' Сообщение: <small>[<a href="' gen_uri('edit'$id'smiles=1') . '">Смайлы</a>] ');
          
$form->addCode('[<a href="' gen_uri('edit'$id'code=1') . '">ББ-коды</a>]</small>');
          
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
          
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
          
$form->addTextarea('''text'$post['guest_text'], ' id="msg" style="width:98%;"');
          echo 
$form->Submit('Редактировать''submit');
          unset(
$form);
        }
        else {
            
show_header('Поправка сообщения');
            
show_error('Ошибка! Редактирование невозможно, прошло более 10 минут!!');
        } 
      }
      else {
          
show_header('Поправка сообщения');
          
show_error('Ошибка! Сообщение удалено или вы не автор этого сообщения!');
      } 
    }
    else {
      
show_header('Поправка сообщения');
      
show_login('Вы не авторизованы, чтобы редактировать сообщения, необходимо');
    }

    echo 
'<div class="b">' icon('return.png') . ' <a href="' gen_uri('index''p' $pageRND) . '">Вернуться</a><br /></div>';

  break;

endswitch;

show_footer();

?>
Онлайн: 1
Реклама