<?php
require_once "../includes/start.php";
require_once "../includes/functions.php";
require_once "../includes/header.php";
include_once "../themes/".$config['themes']."/verh.dat";
if (isset($_GET['start'])) {$start = (int)$_GET['start'];} else {$start = 0;}
if (isset($_GET['action'])) {$action = check($_GET['action']);} else {$action = "";}
if (isset($_GET['uz'])) {$uz=check($_GET['uz']);} elseif (isset($_POST['uz'])) {$uz=check($_POST['uz']);} else {$uz="";}
show_title('Приватные сообщения');
if (is_user()){
############################################################################################
## Главная страница ##
############################################################################################
if ($action=="") {
if ($udata[10]>0){
change_profil($log, array(10=>0));
}
$filesize = filesize(DATADIR.'privat/'.$log.'.priv');
$pers = round((($filesize / 1024) * 100) / $config['limitsmail']);
echo'<b>Входящие</b> | <a href="privat.php?action=output">Отправленные</a><br>';
if ($udata[10]>0){echo'Получено новых писем: <b>'.(int)$udata[10].'</b><br>';}
if ($pers>80 && $pers<98){
echo'<div style="text-align:center"><b><span style="color:darkred">Ваш ящик заполнен на '.$pers.'%, необходимо очистить или удалить старые сообщения!</span></b></div>';}
if ($pers>=98){
echo'<div style="text-align:center"><b><span style="color:darkred">Ваш ящик переполнен, вы не сможете получать письма, пока не очистите его!</span></b></div>';}
if (file_exists(DATADIR.'privat/'.$log.'.priv')){
$file = file(DATADIR.'privat/'.$log.'.priv');
$file = array_reverse($file);
$total = count($file);
if ($total>0){
echo'<form action="privat.php?action=del&start='.$start.'&uid='.$_SESSION['token'].'" method="post">';
if ($start < 0 || $start > $total){$start = 0;}
if ($total < $start + $config['privatpost']){ $end = $total; }
else {$end = $start + $config['privatpost']; }
for ($i = $start; $i < $end; $i++){
$data = explode("|",$file[$i]);
$num = $total - $i - 1;
echo'<div class="b">';
echo user_avatars($data[0]);
echo'<b><a href="anketa.php?uz='.$data[0].'">'.nickname($data[0]).'</a></b> '.user_online($data[0]).' ('.date_fixed($data[2]).')<br>';
echo'<input type="checkbox" name="del[]" value="'.$num.'"> ';
echo'<a href="privat.php?action=submit&uz='.$data[0].'">Ответить</a></div>';
echo'<div>'.bb_code($data[1]).'</div>';
}
echo'<br><input type="submit" value="Удалить выбранное"></form>';
page_jumpnavigation('privat.php?', $config['privatpost'], $start, $total);
page_strnavigation('privat.php?', $config['privatpost'], $start, $total);
echo'<br><br>Всего писем: <b>'.(int)$total.'</b><br>';
echo'Объем ящика: <b>'.(int)$pers.'%</b><br>';
echo'<br><a href="privat.php?action=alldel&uid='.$_SESSION['token'].'">Очистить ящик</a>';
} else {show_error('Входящих писем еще нет!');}
} else {show_error('Входящих писем еще нет!');}
echo'<br><a href="privat.php?action=submit">Написать письмо</a><br>';
echo'<a href="privat.php?rand='.mt_rand(100,999).'">Обновить список</a><br>';
}
############################################################################################
## Отправка привата ##
############################################################################################
if ($action=="submit"){
echo'<b>Отправка почты</b><br><br>';
if ($uz==""){
echo'<form method="post" action="privat.php?action=send&uid='.$_SESSION['token'].'">';
echo'Введите логин:<br>';
echo'<input type="text" name="uz" maxlength="20"><br>';
echo'Текст:<br>';
echo'<textarea cols="25" rows="3" name="msg"></textarea><br>';
echo'<input value="Отправить" name="do" type="submit"></form><hr>';
} else {
echo'<form method="post" action="privat.php?action=send&uz='.$uz.'&uid='.$_SESSION['token'].'">';
echo'Сообщение для <b>'.nickname($uz).'</b>:<br><br>';
echo'Текст:<br>';
echo'<textarea cols="25" rows="3" name="msg"></textarea><br>';
echo'<input value="Отправить" name="do" type="submit"></form><hr>';
}
echo'<a href="privat.php">Вернуться в приват</a><br>';
}
############################################################################################
## Исходящие сообщения ##
############################################################################################
if ($action=="output"){
echo'<a href="privat.php">Входящие</a> | <b>Отправленные</b><br>';
if (file_exists(DATADIR.'dataoutput/'.$log.'.priv')){
$file = file(DATADIR.'dataoutput/'.$log.'.priv');
$file = array_reverse($file);
$total = count($file);
if ($total>0){
echo'<form action="privat.php?action=outdel&start='.$start.'&uid='.$_SESSION['token'].'" method="post">';
if ($start < 0 || $start > $total){$start = 0;}
if ($total < $start + $config['privatpost']){ $end = $total; }
else {$end = $start + $config['privatpost']; }
for ($i = $start; $i < $end; $i++){
$num = $total - $i - 1;
$data = explode("|",$file[$i]);
echo'<div class="b">';
echo user_avatars($data[0]);
echo'Получатель: <b><a href="anketa.php?uz='.$data[0].'">'.nickname($data[0]).'</a></b> ('.date_fixed($data[2]).')<br>';
echo'<input type="checkbox" name="del[]" value="'.$num.'"> ';
echo'<a href="privat.php?action=submit&uz='.$data[0].'">Написать еще</a></div>';
echo'<div>Текст письма: '.bb_code($data[1]).'</div>';
}
echo'<br><input type="submit" value="Удалить выбранное"></form>';
page_jumpnavigation('privat.php?action=output&', $config['privatpost'], $start, $total);
page_strnavigation('privat.php?action=output&', $config['privatpost'], $start, $total);
echo'<br><br><a href="privat.php?action=alloutdel&uid='.$_SESSION['token'].'">Очистить ящик</a>';
} else {show_error('Отправленных писем еще нет!');}
} else {show_error('Отправленных писем еще нет!');}
echo'<br><a href="privat.php?action=submit">Написать письмо</a><br>';
}
############################################################################################
## Отправка сообщений ##
############################################################################################
if ($action=="send"){
$uid = check($_GET['uid']);
$msg = check($_POST['msg']);
if ($uid==$_SESSION['token']){
if ($uz!=$log){
if (utf_strlen(trim($msg))>=5 && utf_strlen($msg)<1000){
if (preg_match('|^[a-z0-9_\-]+$|i',$uz)){
if (file_exists(DATADIR."profil/$uz.prof")){
$filesize = filesize(DATADIR.'privat/'.$uz.'.priv');
$pers = round((($filesize / 1024) * 100) / $config['limitsmail']);
if ($pers < 100){
$string = search_string(DATADIR."dataignor/$uz.dat", $log, 1);
if (empty($string)) {
antiflood("Location: privat.php?action=submit&isset=antiflood&uz=$uz");
$msg = no_br($msg,'<br>');
$msg = antimat($msg);
$msg = smiles($msg);
$text = no_br($log.'|'.$msg.'|'.SITETIME.'|');
write_files(DATADIR.'privat/'.$uz.'.priv', "$text\r\n");
$uzdata = reading_profil($uz);
change_profil($uz, array(10=>$uzdata[10]+1));
$sendtext = no_br($uz.'|'.$msg.'|'.SITETIME.'|');
write_files(DATADIR.'dataoutput/'.$log.'.priv', "$sendtext\r\n", 0, 0666);
$countstr = counter_string(DATADIR.'dataoutput/'.$log.'.priv');
if ($countstr>=20) {
delete_lines(DATADIR.'dataoutput/'.$log.'.priv', 0);
}
header ("Location: privat.php?isset=mail"); exit;
} else {show_error('Ошибка! Вы внесены в игнор-лист получателя!');}
} else {show_error('Ошибка! Ящик получателя переполнен!');}
} else {show_error('Ошибка! Такого адресата не существует!');}
} else {show_error('Ошибка! Недопустимый логин пользователя!');}
} else {show_error('Ошибка! Слишком длинное или короткое сообщение!');}
} else {show_error('Ошибка! Нельзя отправлять письмо самому себе!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<br><a href="privat.php?action=submit&uz='.$uz.'">Вернуться</a><br>';
echo'<a href="privat.php">К письмам</a><br>';
}
############################################################################################
## Очистка сообщений ##
############################################################################################
if ($action=="alldel") {
$uid = check($_GET['uid']);
if ($uid==$_SESSION['token']){
if (empty($udata[10])){
clear_files(DATADIR.'privat/'.$log.'.priv');
header ("Location: privat.php?isset=alldelpriv"); exit;
} else {show_error('Ошибка! У вас имеются непрочитанные сообщения!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<br><a href="privat.php">Вернуться</a><br>';
}
############################################################################################
## Очистка отправленных сообщений ##
############################################################################################
if ($action=="alloutdel") {
$uid = check($_GET['uid']);
if ($uid==$_SESSION['token']){
clear_files(DATADIR.'dataoutput/'.$log.'.priv');
header ("Location: privat.php?action=output&isset=alldelpriv"); exit;
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<br><a href="privat.php?action=output">Вернуться</a><br>';
}
############################################################################################
## Удаление сообщений ##
############################################################################################
if ($action=="del"){
$uid = check($_GET['uid']);
if (isset($_POST['del'])) {$del = intar($_POST['del']);} else {$del = "";}
if ($uid==$_SESSION['token']){
if ($del!==""){
delete_lines(DATADIR.'privat/'.$log.'.priv', $del);
header ("Location: privat.php?start=$start&isset=selectpriv"); exit;
} else {show_error('Ошибка удаления! Отсутствуют выбранные сообщения!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<br><a href="privat.php?start='.$start.'">Вернуться</a><br>';
}
############################################################################################
## Удаление отправленных сообщений ##
############################################################################################
if ($action=="outdel"){
$uid = check($_GET['uid']);
if (isset($_POST['del'])) {$del = intar($_POST['del']);} else {$del = "";}
if ($uid==$_SESSION['token']){
if ($del!==""){
delete_lines(DATADIR.'dataoutput/'.$log.'.priv', $del);
header ("Location: privat.php?action=output&start=$start&isset=selectpriv"); exit;
} else {show_error('Ошибка удаления! Отсутствуют выбранные сообщения!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<br><a href="privat.php?action=output&start='.$start.'">Вернуться</a><br>';
}
} else {show_login('');}
echo'
<a href="../index.php">Главъ</a>';
include_once "../themes/".$config['themes']."/niz.dat";
?>