Файл: 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(); // низ сайта
?>