Вход Регистрация
Файл: chat/index.php
Строк: 185
<?php
define
('CMS'TRUE);
include(
'../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;
$is_admin = (bool) is_admin() ? true false;

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

    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['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('Неверный идентификатор сессии, повторите действие!');

      
gen_red('index'''RND);

    }
}

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

    
$name = !empty($_POST['name']) ? check($_POST['name']) : '';
    
$mess = !empty($_POST['mess']) ? check($_POST['mess']) : '';

    
$len cms_strlen(trim(str_replace(' '''$mess)));

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

    if (
$is_logged || !empty($config['chat_guest'])) {

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

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

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

              if (
$is_logged) {

                if (
is_flood($log)) {

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

                    
$mess antimat($mess);
                    
$mess smiles($mess);

                    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` = '0', `user` = ?, `time` = ?, `msg` = ?, `privat` = ?, `ip` = ?, `ua` = ?"$logSITE_TIME$mess$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('index'''RND);
                }
                else 
$inSes->addMessage('Антифлуд! Разрешается отправлять сообщения раз в ' flood_period() . ' секунд!');
              }
              else {

                if (
cms_strlen($name) >= 3) {

                  if (
cms_strlen($name) <= 25) {

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

                    
$mess antimat($mess);
                    
$mess smiles($mess);

                    
$db->query("INSERT INTO ?_chat_post SET `guest` = ?, `time` = ?, `msg` = ?, `ip` = ?, `ua` = ?"$nameSITE_TIME$mess$ip$brow);

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

                    
gen_red('index'''RND);
                  }
                  else 
$inSes->addMessage('Ошибка! Слишком длинное имя!');
                }
                else 
$inSes->addMessage('Ошибка! Слишком короткое имя!');
              }
            }
            else 
$inSes->addMessage('Ошибка! Ваше сообщение <u>уже было</u> успешно добавлено!');
          }
          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();

$where = ($is_logged) ? "`user` = '" $log "'" "`ip` = '" $ip "'"

$is_user = (int) $db->selectCell("SELECT `time` FROM ?_chat_who WHERE " $where);

if (
$is_user 0) {

    
$db->query("UPDATE ?_chat_who SET `time` = ?, `ip` = ?, `ua` = ? WHERE " $whereSITE_TIME$ip$brow);
}
else {

    
$db->query("INSERT INTO ?_chat_who SET `user` = ?, `time` = ?, `ip` = ?, `ua` = ?"$logSITE_TIME$ip$brow);

}

$count = (int) $db->selectCell("SELECT COUNT(1) FROM ?_chat_who");

if (
$config['chat_refresh'] > 0header('Refresh: ' num($config['chat_refresh']) . '; url=' gen_uri('chat'$idRND));

show_header('Чат - ' $count);

if (
$is_logged || !empty($config['chat_guest'])) {

    echo 
'<div class="bl"><table class="w100">';
    echo 
'<form action="' gen_uri('index'''RND) . '" method="post">';
    if (!
$is_logged) echo '<tr><td>Логин:</td><td><input type="text" name="name" style="width:96%;" value="' request('name') . '" /></td></tr>';
    echo 
'<tr><td>Сообщение:</td><td><textarea name="mess" rows="1">' request('mess') . '</textarea></td></tr>';
    echo 
'<tr><td></td><td><input type="submit" name="send" class="butt" style="float:right;" value="Отправить" /></td></tr>';
    echo 
'<input type="hidden" name="rnd" value="' $_SESSION['token'] . '" />';
    echo 
'</form></table></div>';
}
else 
show_login('Вы не авторизованы, для добавления сообщений, необходимо');

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

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

$rows = array();
$rows $db->selectPage($total"SELECT `c`.*, `u`.`users_gender`, `u`.`users_id`, `v`.`visit_nowtime`
                                 FROM ?_chat_post `c`
                                 LEFT JOIN ?_users `u`
                                 ON `c`.`user` = `u`.`users_login`
                                 LEFT JOIN ?_users_visit `v`
                                 ON `c`.`user` = `v`.`visit_user`
                                 WHERE `c`.`msg` != ''
                                 ORDER BY `c`.`time` DESC
                                 LIMIT ?d, ?d"
$from$onpage);

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

    if (
$is_admin) {

        echo 
'<form action="?rnd=' $_SESSION['token'] . '" method="post" name="chats">';
    }

    
$i $from 1;

    foreach (
$rows as $numRow => $row) {

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

            echo 
'<div class="bl">';        
            echo 
'<table class="w100"><tr>';
            echo 
'<td valign="top" class="vhr">' user_avatars($row['guest'], 1);

            if (
$is_admin) echo '<br /><input type="checkbox" name="del[]" value="' num($row['id']) . '" /></td>';
            else echo 
'</td>';

            echo 
'<td valign="top">';
            echo 
'<span class="fr xsmall">' get_date($row['time']) . '</span>';
            echo 
$config['guest_name'] . ' ' $row['guest'] . '<hr />';
            echo 
nl2br(bb_code($row['msg'])) . '</td></tr></table></div>';
        }
        else {

            echo 
'<div class="bl">';        
            echo 
'<table class="w100"><tr>';
            echo 
'<td valign="top" class="vhr">' user_avatars($row['user']);

            if (
$is_admin) echo '<br /><input type="checkbox" name="del[]" value="' num($row['id']) . '" /></td>';
            else echo 
'</td>';

            echo 
'<td valign="top">';
            echo 
'<span class="fr xsmall">' get_date($row['time']) . '</span>';
            echo 
user_visit_icon($row['user'], $row['users_gender'], $row['visit_nowtime']);
            echo 
' ' users_anketa($row['users_id'], $row['user']) . '<hr />';
            echo 
nl2br(bb_code($row['msg'])) . '</td></tr></table></div>';
        }
/*
                $i++;
                echo '<div class="bl">';
                echo '<div class="img">' . user_avatars($row['user']) . '</div>';
                echo users_anketa($row['user']) . ' ';
                echo date('H:i:s', $row['time']) . ' ' . user_online($row['user']);
                if ($row['user'] <> $log) echo '<span style="float:right;"><a href="?reply=' . num($row['id']) . '#form">ответить</a></span>';

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

                    echo '<br /><b>Приватное</b>';

                    if ($is_logged && $row['privat'] == $log) {

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

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

                if ($is_admin) {

                    echo '<br /><input type="checkbox" name="del[]" value="' . num($row['id']) . '" /> ';
                    echo '(' . $row['ip'] . ' / ' . $row['ua'] . ')<br />';
                }
                echo '</div>';
*/
    
}

    if (
$is_admin) {

        echo 
'<div class="bl"><table><tr>';
        echo 
'<td><input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()"></td>';
        echo 
'<td><input type="submit" name="del_msg" value="Удалить выбранное" /></form></td>';
        echo 
'<td><form action="?rnd=' $_SESSION['token'] . '" method="post">';
        echo 
'<input type="submit" name="clear_chat" value="Очистить чат" /></form></td></tr></table></div>';
        echo <<<JSCRIPT

<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
    var frm = document.chats;
    if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    else{ frm.master_box.checked = true; }
    for (var i=0;i<frm.elements.length;i++) {
        var elmnt = frm.elements[i];
        if (elmnt.type=='checkbox') {
            if(frm.master_box.checked == true){ elmnt.checked=false; }
            else{ elmnt.checked=true; }
        }
    }
}
-->
</script>

JSCRIPT;
    }

    echo 
show_pages(gen_uri('chat'$id));
}
else 
show_error('Cообщений пока нет..');

show_footer();

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