<?php
/*
- NTLCMS v 18.1 19.08.2017 г
- Автор скрипта Александр (NTL)
- Скрипт клик клуба v 18.1
- Оф.сайт http://clicks24.ru
- Контакты ntl-jt@mail.ru
- Все права принадлежат разработчику
- Вы не имеете право вносить изменения в код скрипта
- Данный скрипт запрещено распространять
*/
define('NTLCMS', 1);
$module = 'dialog';
include ('../system/start.php');
include ('../system/function.php');
include ('../system/antidos.php');
include ('../system/head.php');
include ('../system/crypt.class.php');
################################################################################
if (!$active){
header('Location: '.URL);
$_SESSION['fail'] = 'Вы не авторизированы!';
exit;
}
################################################################################
if ($set['mails'] == '1' && $_USER['admin'] != '1'){
echo '<div class="title"><center>Личная почта</center></div>';
echo '<div class="post"><center>'.image('fail.png','16|16').' Модуль закрыт администратором!</center></div>';
echo '<div class="block">'.image('home.png','18|18').' <a href="'.URL.'/cabinet">В кабинет</a></div>';
include ('../system/foot.php'); exit;
}
################################################################################
$getlogin = isset($_GET['login']) ? filter_in($_GET['login']) : false;
$mess = DB :: run() -> query("select * from `users` where `login` = ?", array($getlogin)) -> fetch(PDO::FETCH_OBJ);
if (isset($mess -> login) and $ulogin == $getlogin){
header('Location: '.URL.'/messages');
$_SESSION['fail'] = 'Произошла ошибка!'; exit;
}
################################################################################
echo '<div class="title"><center>Сообщения | Диалог с '.filter_out($mess -> login).'</center></div>';
################################################################################
if (DB :: run() -> querySingle("select count(`id`) from `contacts` where `kogo` = ? and `kto` = ? limit 1", array($mess -> login, $ulogin)) == 0){
DB :: run() -> query("insert into `contacts` (`kto`, `kogo`, `time`, `posl_time`) values (?, ?, ?, ?)", array($ilogin, $mess -> login, TIME, TIME));
DB :: run() -> query("insert into `contacts` (`kto`, `kogo`, `time`, `posl_time`) values (?, ?, ?, ?)", array($mess -> login, $ilogin, TIME, TIME));
}
if (isset($_REQUEST['ok'])){
$text = isset($_POST['text']) ? filter_in($crypt->xoft_encode($_POST['text'], $set['secure'])) : false;
if (empty($text)){
$error.= 'Введите текст сообщения!<br/>';
} elseif (mb_strlen($text, 'UTF-8') < 1 or mb_strlen($text, 'UTF-8') > 2500){
$error.= 'Сообщение должно содержать от 1 до 2500 символов!<br/>';
} elseif (DB :: run() -> querySingle("select (`time`) from `message` where `kto` = ? and `time` > ?", array($ulogin, TIME - $set['antispam']))){
$error.= 'Антиспам! Лимит '.((int) $set['antispam']).' секунд!<br/>';
}/* elseif (DB :: run() -> querySingle("select (`to`) from `blacklist` where `to` = ? and `who` = ?", array($ulogin, $mess['login']))){
$error.= 'Вы у пользователя в черном списке!<br/>';
} elseif (!DB :: run() -> querySingle("select (`to`) from `contactlist` where `to` = ? and `who` = ?", array($ulogin, $_POST['login']))){
$error.= 'Вас нет в списке контактов у пользователя!<br/>';
}*/
################################################################################
if (is_uploaded_file($_FILES['file']['tmp_name'])){
$checktype = explode('.', $_FILES['file']['name']);
$filetype = array('png', 'jpg', 'jpeg', 'bmp', 'wbmp', 'tif', 'tiff', 'gif',
'ico', '3gp', 'mp4', 'divx', 'dlx', 'mpeg', 'mpeg4', 'avi', 'pdf', 'txt', 'sql', 'text',
'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'ppf', 'mdb', 'accdb', 'exe', 'jar', 'jad',
'zip', 'rar', '7z', 'tar', 'mp3', 'wav', 'wave', 'midi', 'mid', 'mp2', 'flac', 'djv',
'djvu', 'iso', 'mdf', 'mds', 'pas', 'thm', 'nth', 'sis');
$upfiletype = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".") + 1);
$file = filter_in($_SERVER['HTTP_HOST'].'_'.rand(0,999999).'_'.$_FILES['file']['name']);
if (!@file_exists($_FILES['file']['tmp_name'])){
$error.= 'Выберите файл!<br/>';
} elseif($_FILES['file']['size'] > (1048576 * 20)){
$error.= 'Вес файла должен быть не более 20 мб<br/>';
} elseif(!in_array($upfiletype, $filetype)){
$error.= 'Файл данного формата загружать запрещено!<br/>';
} elseif (count($checktype) != 2){
$error.= 'Запрещены файлы не имеющие имени, расширения, или с двойным расширением!<br/>';
}
}
################################################################################
if ($error){
echo '<div class="post"><center>'.image('fail.png','16|16').' '.$error.'</center></div>';
} else {
DB :: run() -> query("update `contacts` set `posl_time` = ? where `kogo` = ? and `kto` = ? limit 1", array(TIME, $ilogin, $mess -> login));
DB :: run() -> query("update `contacts` set `posl_time` = ? where `kto` = ? and `kogo` = ? limit 1", array(TIME, $ilogin, $mess -> login));
DB :: run() -> query("insert into `message` (`text`, `kto`, `komy`, `time`, `readlen`) values (?, ?, ?, ?, ?)", array($text, $ilogin, $mess -> login, TIME, 0));
$insert = DB :: run() -> lastInsertId();
/* Загрузка файла */
if (move_uploaded_file($_FILES['file']['tmp_name'], FOLDER.'/mail/files/'.$file)){
DB :: run() -> query("update `message` set `filename` = ? where `id` = ? limit 1", array($file, $insert));
}
$_SESSION['success'] = 'Сообщение добавлено!';
header('Location: '.URL.'/dialog-'.$mess -> login);
exit;
}
}
echo '<div class="menu"><form name="form" action="'.URL.'/dialog-'.filter_out($mess -> login).'" method="post" enctype="multipart/form-data">';
echo fast_smile() . panel('text').'<textarea name="text" rows="3" cols="20"></textarea><br/>
<input name="file" type="file"/><br/><input type="submit" name="ok" value="Написать"/>
<a href="'.URL.'/dialog-'.filter_out($mess -> login).'">
<input type="button" class="form" value="Обновить"/></a></form></div>';
$k_post = DB :: run() -> querySingle("select count(`id`) from `message` where `kto` = ? and `komy` = ? or `kto` = ? and `komy` = ?", array($ulogin, $mess -> login, $mess -> login, $ulogin));
$k_page = k_page($k_post, $onpage);
$page = page($k_page);
$start = $onpage * $page - $onpage;
$sql = DB :: run() -> query("select * from `message` where `kto` = ? and `komy` = ? or `kto` = ? and `komy` = ? order by `time` desc limit ".$start.", ".$onpage, array($ulogin, $mess -> login, $mess -> login, $ulogin));
while ($row = $sql -> fetch(PDO::FETCH_OBJ)){
echo '<div class="menu">';
echo ava($row -> kto).' '.login($row -> kto, 1).' '.online($row -> kto).' ['.lasttime($row -> time).']';
if ($row -> readlen == '0'){
echo ' [<font color="red">Не прочитано</font>]';
} else {
echo ' [<font color="green">Прочитано</font>]';
}
echo '<br/>'.image('postalt.png','16|16').' '.outtext($crypt->xoft_decode($row -> text, $set['secure']), 1 ,1 ,1).'<br/>';
if (!empty($row -> filename)){
$filesize = filesize(FOLDER.'/mail/files/'.$row -> filename);
echo image('download.png','16|16').' <b>* Файл: </b> <a href="'.URL.'/down-'.filter_out($row -> filename).'">'.filter_out($row -> filename).'</a> ['.formatsize($filesize).']';
}
echo '</div>';
if ($ulogin == $row -> komy){
DB :: run() -> query("update `message` set `readlen` = ? where `id` = ? limit 1", array(1, $row -> id));
}
}
if ($k_post < 1) echo '<div class="post"><center>'.image('fail.png','16|16').' Переписка с '.filter_out($mess -> login).' еще не состоялась!</center></div>';
if ($k_page > 1) navigation(URL.'/dialog-'.filter_out($mess -> login).'?', $k_page, $page);
echo '<div class="block">'.image('home.png','18|18').' <a href="'.URL.'/cabinet">В кабинет</a> | <a href="'.URL.'/messages">Личная почта</a></div>';
include ('../system/foot.php');
?>