Вход Регистрация
Файл: 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 == || $bots == 3) ? 0;
        
$shutnik = ($bots == || $bots == 3) ? 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 == || $bots == 3) ? 0;
        
$shutnik = ($bots == || $bots == 3) ? 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$logSITE_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;

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