Файл: clik.online/mail.php
Строк: 137
<?php
/**
* @author: Egor Smolyakov, 2012.
* @e-mail: mr.stelhammer@gmail.com
*/
defined('ROOT') or define('ROOT', str_replace('\', '/', realpath(dirname (__FILE__))));
require_once ROOT . '/system/init.php'; // инициализация ядра
if(!$is_user) redir(HOST.'/login/');
page_head('Моя почта'); // название страницы
switch ($act) {
default:
echo '<div class="menu">Входящие письма</div>';
include_once ROOT . '/system/inc/classes/Navigator.class.php'; // класс навигации
$nav = new Navigator(HOST.'/mail/?',$set['count_pages']);
$querypost = DB :: run() -> query("SELECT * FROM `mail` WHERE `user_to` = '".$user['login']."' ORDER BY `id` DESC LIMIT ".$nav->start().", ".$nav->pnumber.";");
$total = DB :: run() -> querySingle("SELECT count(*) FROM `mail` WHERE `user_to` = '".$user['login']."';");
if ($total > 0) {
$total_new = DB :: run() -> querySingle("SELECT count(*) FROM `mail` WHERE `user_to` = '".$user['login']."' AND `new` = '1';");
if($total_new > 0) DB :: run() -> query("UPDATE `mail` SET `new` = '0' WHERE `user_to` = '".$user['login']."';");
while ($read = $querypost -> fetch()) {
echo '<div class="menu"><a href="'.HOST.'/mail/?act=send&login='.$read['user_send'].'">'.$read['user_send'].'</a> ['.view_date($read['time_send']).']<br />
'.nl2br($read['message']).'
</div>';
}
} else {
echo '<div class="menu">Сообщений нет.</div>';
}
echo $nav->navi($total,0);
echo '<div class="menu"><a href="'.HOST.'/mail/?act=send">Написать письмо</a><br />
<a href="'.HOST.'/mail/?act=out">Исходящие письма</a> ['.DB :: run() -> querySingle("SELECT COUNT(*) FROM `mail` WHERE `user_send` = '".$user['login']."';").']</div>';
break;
case 'send':
echo '<div class="menu">Отправить письмо</div>';
$login = '';
if (isset($_GET['login'])) {
$queryread = DB :: run() -> query("SELECT * FROM `users` WHERE `login`=? LIMIT 1;", array(protect($_GET['login'])));
$data = $queryread -> fetch();
if ($data > 0) {
$login = $data['login'];
}
}
if(!empty($_POST['login']) && !empty($_POST['message']))
{
$login = protect($_POST['login']);
$message = protect($_POST['message']);
if(strlenx($message) < 2 || strlenx($message) > 10000) {
$error = 'Слишком короткое или длинное сообщение. Допустимо от 2 до 10000 символов.';
$_SESSION['message'] = $message;
}elseif(DB :: run() -> querySingle("SELECT COUNT(*) FROM `users` WHERE lower(`login`)=? LIMIT 1;", array(strtolower($login))) == 0) {
$error = 'Пользователь не найден.';
}
elseif($login == $user['login']) {
$error = 'Отправлять себе сообщения нельзя.';
}
else {
$flood = DB :: run() -> queryFetch("SELECT `time_send` FROM `mail` WHERE `user_send` = ? AND `user_to` = ? ORDER BY `time_send` DESC LIMIT 1", array($user['login'], $login));
if($flood['time_send'] < ( TIME-$set['anti_flood']))
{
$ban = DB :: run() -> queryFetch("SELECT `banned` FROM `users` WHERE lower(`login`)=? LIMIT 1;", array(strtolower($login)));
if($ban['banned'] == 1) {
echo '<div class="menu">Пользователь заблокирован.</div>';
page_foot();
}else{
DB :: run() -> query("INSERT INTO `mail` SET `user_send` = '".$user['login']."', `user_to` = '".$login."', `time_send` = '".TIME."',`message` = '".$message."';");
echo '<div class="menu">Сообщение успешно отправлено.</div>';
echo '<div class="menu"><a href="'.HOST.'/mail/">Личные сообщения</a><br /><a href="'.HOST.'/">Личный кабинет</a></div>';
}
unset($_SESSION['message']);
page_foot(); // низ сайта
}else{
$error = 'Не пишите так часто. Антифлуд '.$set['anti_flood'].' секунд.';
}
}
}
if (!empty($error)) {
echo '<div class="menu">'.$error.'</div>';
}
$ses_mess = isset($_SESSION['message']) ? $_SESSION['message'] : '';
echo '<div class="menu">
<form action="'.HOST.'/mail/?act=send" method="POST">
Кому:<br />
<input type="text" name="login" value="'.$login.'"/><br />
Текст сообщения:<br />
<textarea name="message" type="text" cols="30" rows="5">'.$ses_mess.'</textarea><br />
<input type="submit" value="Отправить" /><br />
</form></div>';
break;
case 'out':
include_once ROOT . '/system/inc/classes/Navigator.class.php'; // класс навигации
$nav = new Navigator(HOST.'/mail/?act=out&',$set['count_pages']);
$querypost = DB :: run() -> query("SELECT * FROM `mail` WHERE `user_send` = '".$user['login']."' ORDER BY `id` DESC LIMIT ".$nav->start().", ".$nav->pnumber.";");
$total = DB :: run() -> querySingle("SELECT count(*) FROM `mail` WHERE `user_send` = '".$user['login']."';");
if ($total > 0) {
while ($read = $querypost -> fetch()) {
echo '<div class="menu">Я » <a href="'.HOST.'/mail/?act=send&login='.$read['user_to'].'">'.$read['user_to'].'</a> ['.view_date($read['time_send']).']<br />
'.nl2br($read['message']).'
</div>';
}
} else {
echo '<div class="menu">Исходящих сообщений нет.</div>';
}
echo $nav->navi($total,0);
echo '<div class="menu"><a href="'.HOST.'/mail/?act=send">Написать письмо</a><br />
<a href="'.HOST.'/mail/">Входящие письма</a> ['.DB :: run() -> querySingle("SELECT COUNT(*) FROM `mail` WHERE `user_to` = '".$user['login']."';").']</div>';
break;
}
echo '<div class="menu"><a href="'.HOST.'/">Личный кабинет</a></div>';
page_foot(); // низ сайта
?>