Вход Регистрация
Файл: CMS/chat/cfg.php
Строк: 160
<?php
define
('ROOT','../');
include(
'../core/inc.php');

$is_admin = (bool) is_admin() ? true : false;

# Функция проверки пароля
function show_auth_room($idk = '', $pass = '') {

    if (!empty(
$_POST['pass']) && $_POST['pass'] == $pass) {

        
$_SESSION[SP]['room_privat'][$idk] = md5($pass);

    }
    else if (empty(
$_SESSION[SP]['room_privat'][$idk]) || md5($pass) <> $_SESSION[SP]['room_privat'][$idk]) {


        
$form = new cmsForm();
        
$form->addCode(blink('Внимание!') . ' Доступ в комнату только по паролю.<br />');
        
$form->addText('Ваш пароль:','pass');
        echo 
$form->Submit('Войти');
        echo 
'<div class="b">';
        echo 
icon('return.png') . ' <a href="' . gen_uri('index', '', RND) . '">Прихожая</a><br />';
        echo 
'</div>';
        
show_footer();
        exit();
    }
}

# Функция проверки возраста 18+
function show_xxx_room() {

    global 
$config;

    if (empty(
$_SESSION['xxx']) || !isset($_SESSION['xxx'])) {

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

            
$_SESSION['xxx'] = $_POST['xxx_code'];
        }
        else {

            
$config['chat_warning'] = str_replace('{SITE_NAME}', $config['site_name'], $config['chat_warning']);
            
$form = new cmsForm();
            
$form->addCaptcha($config['chat_warning'],'xxx_code');
            echo 
$form->Submit('согласен');
            echo 
'<div class="b">';
            echo 
icon('return.png') . ' <a href="' . gen_uri('index', '', RND) . '">Прихожая</a><br />';
            echo 
'</div>';
            
show_footer();
            die;
        }
    }
}

# Админ действия чата
if ($is_admin) {

    if (!empty(
$_POST['add_room'])) { // Создание комнаты

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

        
$pos     = !empty($_POST['pos'])   ? num($_POST['pos'])     : 0;
        
$name    = !empty($_POST['name'])  ? check($_POST['name'])  : '';
        
$about   = !empty($_POST['about']) ? check($_POST['about']) : '';
        
$bots    = !empty($_POST['bots'])  ? num($_POST['bots'])    : 0;
        
$umnik   = ($bots == 1 || $bots == 3) ? 1 : 0;
        
$shutnik = ($bots == 2 || $bots == 3) ? 1 : 0;
        
$type    = !empty($_POST['type']) ? num($_POST['type'])  : 0;

        
$last_id = (int) $db->query("INSERT INTO ?_chat_rooms SET `pos` = ?, `name` = ?, `about` = ?, `umnik` = ?, `shutnik` = ?, `type` = ?", $pos, $name, $about, $umnik, $shutnik, $type);

        if (
$last_id > 0) $inSes->addMessage('Комната успешно добавлена!', 'ok');
        else 
$inSes->addMessage('Ошибка! Не удалось добавить комнату!');

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

    }

    if (!empty(
$_POST['edit_room'])) { // Редактирование комнаты

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

        
$idr     = !empty($_POST['edit_room']) ? num($_POST['edit_room']) : 0;
        
$pos     = !empty($_POST['pos'])       ? num($_POST['pos'])       : 0;
        
$name    = !empty($_POST['name'])      ? check($_POST['name'])    : '';
        
$about   = !empty($_POST['about'])     ? check($_POST['about'])   : '';
        
$bots    = !empty($_POST['bots'])      ? num($_POST['bots'])      : 0;
        
$umnik   = ($bots == 1 || $bots == 3) ? 1 : 0;
        
$shutnik = ($bots == 2 || $bots == 3) ? 1 : 0;
        
$type    = !empty($_POST['type']) ? num($_POST['type'])  : 0;

        
$last_id = (int) $db->query("UPDATE ?_chat_rooms SET `pos` = ?, `name` = ?, `about` = ?, `umnik` = ?, `shutnik` = ?, `type` = ? WHERE `id` = ?", $pos, $name, $about, $umnik, $shutnik, $type, $idr);

        if (
$last_id > 0) $inSes->addMessage('Комната успешно изменена!', 'ok');
        else 
$inSes->addMessage('Ошибка! Не удалось изменить комнату!');

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

    }

    if (!empty(
$_GET['del_room'])) { // Удаление комнаты

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

        
$db->query("DELETE FROM ?_chat_rooms WHERE `id` = ?", num($_GET['del_room']));

        
$db->query("OPTIMIZE TABLE ?_chat_post, ?_chat_rooms, ?_chat_who");

        
$inSes->addMessage('Комната успешно удалена!', 'ok');

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

    }

    if (!empty(
$_GET['clear_room'])) { // Очистка комнаты

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

        
$db->query("DELETE FROM ?_chat_post WHERE `room` = ?", num($_GET['clear_room']));

        
$db->query("OPTIMIZE TABLE ?_chat_post, ?_chat_rooms, ?_chat_who");

        
$inSes->addMessage('Комната успешно очищена!', 'ok');

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

    }

    if (!empty(
$_GET['clear_chat'])) { // Очистка чата

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

        
$db->query("TRUNCATE TABLE ?_chat_post");

        
$db->query("OPTIMIZE TABLE ?_chat_post, ?_chat_rooms, ?_chat_who");

        
$inSes->addMessage('Чат успешно очищен от сообщений!', 'ok');

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

    }

    if (!empty(
$_POST['del_msg'])) { // Удаление сообщений

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

        
$del = intar($_REQUEST['del']);

        if (
is_array($del)) {

          
$del = implode(',', $del);

          
$db->query("DELETE FROM ?_chat_post WHERE `id` IN (" . $del . ");");

          
$inSes->addMessage('Выбранные сообщения успешно удалены!', 'ok');
        }
        else {

          
$db->query("DELETE FROM ?_chat_post WHERE `id` = ? LIMIT 1;", $del);

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

        
$db->query("OPTIMIZE TABLE ?_chat_post, ?_chat_rooms, ?_chat_who");

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

    }
}

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

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

    
$len = cms_strlen(trim(str_replace(' ', '', $msg)));

    if (
$is_logged) {

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

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

          if (
$len >= $config['chat_min_text'] && $len < $config['chat_max_text']) {

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

              
$is_room = (int) $db->selectCell("SELECT * FROM ?_chat_rooms WHERE `id` = ? LIMIT 1;", $rid);

              if (
$is_room > 0) {

                if (
is_quarantine($log)) {

                  if (
is_flood($log)) {

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

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

                    if (!empty(
$_POST['privat']) && num($_POST['reply']) > 0) {

                        
$prv = $db->selectRow("SELECT * FROM ?_chat_post WHERE `id` = ?", num($_POST['reply']));

                        
$privat = !empty($prv['user']) ? check($prv['user']) : '';
                    }
                    else 
$privat = '';

                    
$db->query("INSERT INTO ?_chat_post SET `room` = ?, `user` = ?, `time` = ?, `msg` = ?, `privat` = ?, `ip` = ?, `ua` = ?", $rid, $log, SITE_TIME, $msg, $privat, $ip, $brow);

                    
$db->query("UPDATE ?_users SET `users_allchat` = (`users_allchat` + 1), `users_point` = (`users_point` + ?), `users_money` = (`users_money` + ?) WHERE `users_login` = ?", $config['chat_add_ball'], $config['chat_add_money'], $log);

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

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

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

# Очистка приватных комнат
if ($is_logged) {

    if (!empty(
$_GET['clear'])) {

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

            
$row = $db->selectRow("SELECT * FROM ?_chat_rooms WHERE `id` = ?", num($_GET['clear']));

            if (!empty(
$row)) {

                if (
$row['user'] == $log) {

                    
$db->query("DELETE FROM ?_chat_post WHERE `room` = ? AND `user` = ?", $row['id'], $log);

                    
$db->query("OPTIMIZE TABLE ?_chat_post, ?_chat_rooms, ?_chat_who");

                    
$inSes->addMessage('Комната успешно очищена!', 'ok');

                    
gen_red('chat', $row['id'], RND);
                }
                else 
$inSes->addMessage('Ошибка! У Вас нет прав для очистки этой комнаты!');
            }
            else 
$inSes->addMessage('Ошибка! Комната не надена!');
        }
        else 
$inSes->addMessage('Неверный идентификатор сессии, повторите действие!');
    }
}

# Удаление онлайн
if (!empty($_SESSION[SP]['chat_online'])) {

    if (
$_SESSION[SP]['chat_online'] < (time()-$config['chat_online'])) {

        
$db->query("DELETE FROM ?_chat_who WHERE (`time` < UNIX_TIMESTAMP() - ?)", $config['chat_online']);
    }
}

$_SESSION[SP]['chat_online'] = time();

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

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