Файл: mail/mail.php
Строк: 483
<?php
require_once '../core/system.php';
echo only_reg();
$header = 'Почта';
$header_link = '?';
require_once H.'/core/head.php';
# Адаптация
$inf = $user;
switch($_GET['m']) {
default:
if(!check_mail())
{
echo'<font color="red"><strong>Данный раздел будет доступен только после <a href="/profile/mail_edit/">подтверждения E-mail</a></strong></font>';
require_once H.'/core/foot.php';
exit;
}
echo'<div class="phdr">
<a href="?m=mess"><input value="Написать" type="button" /></a></strong>
</div>';
if(empty($_GET['page'])) $page = 0;
else
$page = (int)$_GET['page'];
$num = 12;
$posts = mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$inf['id']."' GROUP BY `kontakt`"), 0);
$total = intval(($posts - 1) / $num) + 1;
if(empty($page) OR $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$print = mysql_query("SELECT * FROM `mail_kontakt` WHERE `us`='".(int)$inf['id']."' GROUP BY `kontakt` ORDER BY `time` DESC LIMIT ".$start.",".($num)."");
if (mysql_affected_rows() == 0)
{
echo ' У вас нет открытых диалогов<br/>';
}
else
{
while($arr = mysql_fetch_array($print))
{
$kol_mess = mysql_num_rows(mysql_query ("SELECT `id` FROM `mail` WHERE ((`komu`='".(int)$inf['id']."' AND `kto`='".(int)$arr['kontakt']."') OR (`kto`='".(int)$inf['id']."' AND `komu`='".(int)$arr['kontakt']."')) AND `adresat` = '".(int)$inf['id']."'"));
$new_mess = mysql_num_rows(mysql_query ("SELECT `id` FROM `mail` WHERE `komu`='".(int)$inf['id']."' AND `kto`='".(int)$arr['kontakt']."' AND `active` = '0' AND `adresat` != '".(int)$user['id']."'"));
echo'<a href="?m=dialog&us='.$arr['kontakt'].'">
<div class="listing-information-two">
'.login($arr['kontakt'], 0).' <span>('.$new_mess.'/'.$kol_mess.')</span>
</div>
</a>
';
}
page_nav($page,$total,$cssClass="hr p5",$dopLink);
}
/*Вывод ссылок на разделы сообщений*/
echo'<div class="title" style="text-align: left;"><a href="?m=show_mess_status&status=izb">Избранное <span>('.mysql_num_rows(mysql_query ("SELECT `id` FROM `mail` WHERE `status`='izb' ")).')</span></a></div>';
echo'<div class="title" style="text-align: left;"><a href="?m=show_mess_status&status=save">Сохраненные<span>('.mysql_num_rows(mysql_query ("SELECT `id` FROM `mail` WHERE `status`='save' ")).')</span></a></div>';
break;
case 'mess':
if(!$_POST['content'] && !$_POST['add'])
{
if($_GET['us_id'] == $inf['id'])
{
echo'Зачем писать сообщения самому себе? =)) <br />';
echo'<a href="javascript:history.back()" onMouseOver="window.status="Назад";return true"><input value="Назад" type="button" /></a>';
}
else
{
echo "<form method="POST" action="?m=".$_GET['m']."" name="auth">
".($_GET['us_id'] ? "Сообщение для ".login($_GET['us_id']).": <br /> <input type="hidden" name="komu" value="".(int)$_GET['us_id']."">" : "Пользователь (id|ник): <br /><input type="text" name="komu">")." <br />
Текст сообщения:<br/> <textarea name="content" maxlength="500" cols="20" rows="5"></textarea><br/>
<br/><input type="submit" class="ibutton" value="Написать" name="enter"><br />
</form>n";
}
}
else
{
$komu = trim(mysql_real_escape_string(htmlspecialchars($_POST['komu'])));
$content = trim(mysql_real_escape_string(htmlspecialchars($_POST['content'])));
// Ecли присутствует отправка файла то просто инклюдим запись загрузчика Ajax
if($_FILES['files']['name'][1])
{
include 'ajaxUpload.php';
header("Location:?m=dialog_wap&us=".(int)$u['id']."");
}
else
{
$u = mysql_fetch_array(mysql_query("SELECT `id` FROM `user` WHERE `id`='".(int)$komu."' OR `nick`='".$komu."'"));
if($u['id'] == $inf['id']) $er = 'Зачем писать сообщения самому себе? =))';
else
if(!$u['id']) $er = 'Пользователя которому Вы пытаетесь отправить сообщение не существует';
else
if((time() - $_SESSION['time_add']) < $settings['antiflud']) $er = 'Сообщение писать можно не чаще 1 в '.$settings['antiflud'].' сек. ';
else
if(!$content) $er = 'Слишком короткий текст сообщения!';
if($er)
{
echo'<div style="colOR:red"><strong>'.$er.'</strong></div>';
echo'<a href="javascript:history.back()" onMouseOver="window.status="Назад";return true"><input value="Назад" type="button" /></a>';
}
else
{
/*[ДЛЯ ПЕРВОГО ЮЗЕРА] Добавляем сообщение*/
mysql_query("INSERT INTO `mail` SET `adresat`='".(int)$inf['id']."', `kto`='".(int)$inf['id']."', `komu`='".(int)$u['id']."', `content`='".$content."', `data`='".date('d.m.Y в H:i')."', `time`='".time()."'");
/*[ДЛЯ ВТОРОГО ЮЗЕРА] Добавляем сообение*/
mysql_query("INSERT INTO `mail` SET `adresat`='".(int)$u['id']."', `kto`='".(int)$inf['id']."', `komu`='".(int)$u['id']."', `content`='".$content."', `data`='".date('d.m.Y в H:i')."', `time`='".time()."'");
/*[ДЛЯ ПЕРВОГО ЮЗЕРА] Обновляем время в контакте (что бы последните отвеченные были в верху) или добавляем контакт*/
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$inf['id']."' AND `kontakt`='".(int)$u['id']."'"), 0))
{
mysql_query ("Update `mail_kontakt` set `time` = '".time()."' WHERE `us`='".(int)$inf['id']."' AND `kontakt`='".(int)$u['id']."'");
}
else
{
mysql_query("INSERT INTO `mail_kontakt` SET `us`='".(int)$inf['id']."', `kontakt`='".(int)$u['id']."', `time`='".time()."'");
}
/*[ДЛЯ ВТОРОГО ЮЗЕРА] Обновляем время в контакте (что бы последните отвеченные были в верху) или добавляем контакт*/
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$u['id']."' AND `kontakt`='".(int)$inf['id']."'"), 0))
{
mysql_query ("Update `mail_kontakt` set `time` = '".time()."' WHERE `us`='".(int)$u['id']."' AND `kontakt`='".(int)$inf['id']."'");
}
else
{
mysql_query("INSERT INTO `mail_kontakt` SET `us`='".(int)$u['id']."', `kontakt`='".(int)$inf['id']."', `time`='".time()."'");
}
/*записываем время (для антиспама)*/
$_SESSION['time_add'] = time();
if($_GET['vers'] == 'wap') header("Location:?m=dialog_wap&us=".(int)$u['id']."");
else
header("Location:?m=dialog&us=".(int)$u['id']."");
}
}
}
break;
///Сама переписка (Ajax)
case 'dialog':
/*Подключаем js для выполнения запросов */
echo'<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>';
echo'<script type="text/javascript" src="./jquery.form.js"></script>';
echo'<script type="text/javascript" src="./mess.js"></script>';
echo'
<style>
#preview
{
color:#cc0000;
font-size:12px
}
.fileList
{
max-height:150px;
margin-left:5px;
border:1px solid #dedede;
padding:4px;
float:left;
}
</style>
';
echo'<div style="text-align: left;" class="listing-information">';
echo'<div class="content" style="cursor: pointer; margin: -9px -9px 5px -9px; padding: 5px;">';
echo'<span id="sound">';
if($_SESSION['sound_mail']) echo'<img onClick="sound2()" src="img/sound_on.png" alt="*">';
else
echo'<img onClick="sound1()" src="img/sound_off.png" alt="*">';
echo'</span>';
echo' <a href="?m=del_contakt&kont_id='.(int)$_GET['us'].'"><button style="cursor: pointer;">Удалить диалог</button></a>';
echo'<a href="?m=dialog_wap&us='.(int)$_GET['us'].'"><button style="cursor: pointer;">WAP</button></a>';
echo'</div>';
/* загруженные файлы */
echo'<div style="display:none;" id="preview"></div>';
echo'
'.fast_smile().'
<br />
<textarea id="mess" name="content" autofocus="autofocus"></textarea>
<form id="fileform" method="post" enctype="multipart/form-data" action="ajaxUpload.php" style="clear:both">
<input type="hidden" name="komu" id="komu" value="'.$_GET['us'].'"/> <br />
<div id="fileloadstatus" style="display:none"><img src="loader.gif" alt="Uploading...."/></div>
<div id="fileloadbutton">
<input id="add_mess" name="add_mess" type="button" value="Oтправить"/>
<input type="file" name="files[]" id="file_input" multiple="true" /><br />
</div>
</form>
';
echo'</div>';
/*Вывод ошибок*/
echo'<div id="err" class="err" style="display:none;"></div>';
/* Выводим сообщения */
echo'<div id="content"></div>';
break;
///Сама переписка (WAP)
case 'dialog_wap':
echo'<div class="titl">';
echo'<a href="?m=del_contakt&kont_id='.(int)$_GET['us'].'"><button>Удалить диалог</button></a>';
echo'<a href="?m=dialog&us='.(int)$_GET['us'].'"><button>Ajax</button></a>';
echo'</div>';
echo "<form method="POST" action="?m=mess&vers=wap" name="auth" enctype="multipart/form-data">
<input type="hidden" name="komu" value="".$_GET['us'].""> <br />
Текст сообщения:<br/> <textarea name="content"></textarea> <br/>
<input type="hidden" value="add" name="add">
Файлы: <br />
<input name="files[]" type="file" multiple="true"> <br />
<input type="submit" class="ibutton" value="Написать" name="enter"><br /><br/>
</form>n";
/* Выводим ошибки если есть */
if($_SESSION['er']) echo'<font color="red"><strong>'.$_SESSION['er'].'</strong></font>';
unset($_SESSION['er']);
if(empty($_GET['page'])) $page = 0;
else
$page = (int)$_GET['page'];
$num = 12;
$posts = mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE ((`kto`='".(int)$_GET['us']."' AND `komu`='".(int)$inf['id']."') OR (`komu`='".(int)$_GET['us']."' AND `kto`='".(int)$inf['id']."')) AND `adresat`='".(int)$inf['id']."' AND `status`=''"), 0);
$total = intval(($posts - 1) / $num) + 1;
if(empty($page) OR $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$print = mysql_query("SELECT * FROM `mail` WHERE ((`kto`='".(int)$_GET['us']."' AND `komu`='".(int)$inf['id']."') OR (`komu`='".(int)$_GET['us']."' AND `kto`='".(int)$inf['id']."')) AND `adresat`='".(int)$inf['id']."' AND `status`='' ORDER BY `id` DESC LIMIT ".$start.",".($num)."");
if (mysql_affected_rows() == 0)
{
echo 'Вам пока не поступало сообщений!<br/>';
}
else
{
while($arr = mysql_fetch_array($print))
{
echo'<div class="title" style="text-align: left;">
<a href="user'.$arr['kto'].'">'.login($arr['kto']).'</a> ('.$arr['data'].')
<span>
[<a href="?m=mess_status&mess_status=save&mess_id='.$arr['id'].'&us='.$_GET['us'].'">Сох</a>]
[<a href="?m=mess_status&mess_status=izb&mess_id='.$arr['id'].'&us='.$_GET['us'].'">Изб</a>]
[<a href="?m=mess_status&mess_status=del&mess_id='.$arr['id'].'&us='.$_GET['us'].'">Удал</a>]
</span>
</div>';
echo '<div class="div_3">'.smiles($arr['content']).'</div>';
}
page_nav($page,$total,$cssClass="phdr",$dopLink);
///Записуем что прочитаное сообщение
$act = mysql_query("SELECT `id` FROM `mail` WHERE `komu`='".(int)$inf['id']."' AND `active` = '0'");
while($arr = mysql_fetch_array($act))
{
mysql_query ("Update `mail` set `active` = '1' WHERE `id`='".(int)$arr['id']."'");
}
}
break;
/* Добавление сообщ */
case 'add_mess':
if(!$_POST['komu'] || !$_POST['mess'])
{
if($_GET['us_id'] == $inf['id'])
{
echo'Зачем писать сообщения самому себе? =)) <br />';
echo'<a href="javascript:history.back()" onMouseOver="window.status="Назад";return true"><input value="Назад" type="button" /></a>';
}
else
{
echo "<form method="POST" action="?m=".$_GET['m']."" name="auth">
".($_GET['us_id'] ? "Сообщение для ".login($_GET['us_id']).": <br /> <input type="hidden" name="komu" value="".(int)$_GET['us_id']."">" : "Пользователь (id|ник): <br /><input type="text" name="komu">")." <br />
Текст сообщения:<br/> <textarea name="content" maxlength="500" cols="20" rows="5"></textarea><br/>
<br/><input type="submit" class="ibutton" value="Написать" name="enter"><br />
</form>n";
}
}
else
{
$komu = trim(mysql_real_escape_string(htmlspecialchars($_POST['komu'])));
$content = trim(mysql_real_escape_string(htmlspecialchars($_POST['mess'])));
$u = mysql_fetch_array(mysql_query("SELECT `id` FROM `user` WHERE `id`='".(int)$komu."' OR `nick`='".$komu."'"));
if($u['id'] == $inf['id']) $er = 'Зачем писать сообщения самому себе? =))';
else
if(!$u['id']) $er = 'Пользователя которому Вы пытаетесь отправить сообщение не существует';
else
if((time() - $_SESSION['time_add']) < $settings['antiflud']) $er = 'Сообщение писать можно не чаще 1 в '.$settings['antiflud'].' сек. ';
else
if(!$content) $er = 'Слишком короткий текст сообщения!';
if($er)
{
$_SESSION['er'] = $er;
}
else
{
/*[ДЛЯ ПЕРВОГО ЮЗЕРА] Добавляем сообщение*/
mysql_query("INSERT INTO `mail` SET `adresat`='".(int)$inf['id']."', `kto`='".(int)$inf['id']."', `komu`='".(int)$u['id']."', `content`='".$content."', `data`='".date('d.m.Y в H:i')."', `time`='".time()."'");
/*[ДЛЯ ВТОРОГО ЮЗЕРА] Добавляем сообение*/
mysql_query("INSERT INTO `mail` SET `adresat`='".(int)$u['id']."', `kto`='".(int)$inf['id']."', `komu`='".(int)$u['id']."', `content`='".$content."', `data`='".date('d.m.Y в H:i')."', `time`='".time()."'");
/*[ДЛЯ ПЕРВОГО ЮЗЕРА] Обновляем время в контакте (что бы последните отвеченные были в верху) или добавляем контакт*/
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$inf['id']."' AND `kontakt`='".(int)$u['id']."'"), 0))
{
mysql_query ("Update `mail_kontakt` set `time` = '".time()."' WHERE `us`='".(int)$inf['id']."' AND `kontakt`='".(int)$u['id']."'");
}
else
{
mysql_query("INSERT INTO `mail_kontakt` SET `us`='".(int)$inf['id']."', `kontakt`='".(int)$u['id']."', `time`='".time()."'");
}
/*[ДЛЯ ВТОРОГО ЮЗЕРА] Обновляем время в контакте (что бы последните отвеченные были в верху) или добавляем контакт*/
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$u['id']."' AND `kontakt`='".(int)$inf['id']."'"), 0))
{
mysql_query ("Update `mail_kontakt` set `time` = '".time()."' WHERE `us`='".(int)$u['id']."' AND `kontakt`='".(int)$inf['id']."'");
}
else
{
mysql_query("INSERT INTO `mail_kontakt` SET `us`='".(int)$u['id']."', `kontakt`='".(int)$inf['id']."', `time`='".time()."'");
}
/*записываем время (для антиспама)*/
$_SESSION['time_add'] = time();
}
}
break;
case 'mess_status':
if($_GET['mess_status'] == 'save')
{
mysql_query ("Update `mail` set `status` = 'save' WHERE `id` = '".(int)$_GET['mess_id']."' AND `adresat` = '".(int)$inf['id']."'");
$_SESSION['er'] = 'Cообщение сохранено!';
}
else if($_GET['mess_status'] == 'izb')
{
mysql_query ("Update `mail` set `status` = 'izb' WHERE `id` = '".(int)$_GET['mess_id']."' AND `adresat` = '".(int)$inf['id']."'");
$_SESSION['er'] = 'Cообщение сохранено в "Избранное"!';
}
else if($_GET['mess_status'] == 'del')
{
// Удаляем все сообщения адресован данному пользователю
$print = mysql_query("SELECT `id`, `arr_links_file` from `mail` WHERE `id` = '".(int)$_GET['mess_id']."' AND `adresat` = '".(int)$inf['id']."'");
while($arr = mysql_fetch_array($print))
{
// Если больше никто не использует такие файлы, то удаляем
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `arr_links_file` = '".$arr['arr_links_file']."'"),0) < 2)
{
$files = explode(",", $arr['arr_links_file']);
foreach ($files as $name => $value)
{
unlink($_SERVER['DOCUMENT_ROOT'].'/mail/'.$value);
echo $_SERVER['DOCUMENT_ROOT'].'/mail/'.$value.' <br />';
}
}
// Удаляем само сообщение
mysql_query ("DELETE FROM `mail` WHERE `id` = '".(int)$_GET['mess_id']."'");
$_SESSION['er'] = 'Сообщение удалено!';
}
}
header('location: '.$_SERVER['HTTP_REFERER']);
break;
case 'del_contakt':
if(!$_GET['del_ok'])
{
echo'При удалении диалога будут удалены все сообщения! <br />';
echo'<a href="?m='.$_GET['m'].'&kont_id='.$_GET['kont_id'].'&del_ok=5"><button>Удалить</button></a>';
echo'<a href="javascript:histORy.back()" onMouseOver="window.status="Назад";return true"><button>Назад</button></a>';
}
else
{
mysql_query ("DELETE FROM `mail_kontakt` WHERE `us` = '".(int)$inf['id']."' AND `kontakt`='".(int)$_GET['kont_id']."'");
// Удаляем все сообщения адресован данному пользователю
$print = mysql_query("SELECT `id`, `arr_links_file` from `mail` WHERE ((`kto`='".(int)$_GET['kont_id']."' AND `komu`='".(int)$inf['id']."') OR (`komu`='".(int)$_GET['kont_id']."' AND `kto`='".(int)$inf['id']."')) AND `adresat`='".(int)$inf['id']."'");
while($arr = mysql_fetch_array($print))
{
// Если больше никто не использует такие файлы, то удаляем
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `arr_links_file` = '".$arr['arr_links_file']."'"),0) < 2)
{
$files = explode(",", $arr['arr_links_file']);
foreach ($files as $name => $value)
{
unlink($_SERVER['DOCUMENT_ROOT'].'/mail/'.$value);
echo $_SERVER['DOCUMENT_ROOT'].'/mail/'.$value.' <br />';
}
}
// Удаляем само сообщение
mysql_query ("DELETE FROM `mail` WHERE `id`='".(int)$arr['id']."'");
}
header("location: /mail/");
}
break;
case 'show_mess_status':
$status = trim(mysql_real_escape_string(htmlspecialchars($_GET['status'])));
if(empty($_GET['page'])) $page = 0;
else
$page = (int)$_GET['page'];
$num = 12;
$posts = mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `adresat`='".(int)$inf['id']."' AND `status`='".$status."'"), 0);
$total = intval(($posts - 1) / $num) + 1;
if(empty($page) OR $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$print = mysql_query("SELECT * FROM `mail` WHERE `adresat`='".(int)$inf['id']."' AND `status`='".$status."' ORDER BY `id` DESC LIMIT ".$start.",".($num)."");
if (mysql_affected_rows() == 0)
{
echo 'Сообщеней не найдено!<br/>';
}
else
{
while($arr = mysql_fetch_array($print))
{
echo'<div class="div_2">
<a href="user'.$arr['kto'].'">'.login($arr['kto']).'</a> ('.$arr['data'].')
<span>';
echo'<a href="?m='.$m.'&status='.$status.'&otv='.$arr['id'].'">Отв</a> ';
if($status == 'izb') echo'<a href="?m=mess_status&mess_status=save&status='.$status.'&mess_id='.$arr['id'].'">Seve</a> ';
else
echo'<a href="?m=mess_status&mess_status=izb&status='.$status.'&mess_id='.$arr['id'].'">Izb</a> ';
echo'<a href="?m=mess_status&mess_status=del&status='.$status.'&mess_id='.$arr['id'].'">del</a>';
echo'</span>
</div>';
echo '<div class="div_3">';
echo smiles($arr['content']);
if($_GET['otv'] == $arr['id'])
{
echo "<form method="POST" action="?m=mess" name="auth">
<input type="hidden" name="komu" value="".(int)$arr['kto'].""> <br />
<div class='div_1'>
<a href="?m=$m&status=$status">[<font color="#FFF">X</font>]</a>
Текст сообщения:
</div>
<textarea name="content" maxlength="500" cols="20" rows="5"></textarea><br/>
<input type="submit" class="ibutton" value="Написать" name="enter"><br />
</form>n";
}
echo '</div>';
}
page_nav($page,$total,$cssClass='phdr',$dopLink='status='.$status.'&m='.$m.'&');
}
break;
case 'sound':
if($_GET['sn'])
{
$_SESSION['sound_mail'] = 1;
}
else
{
$_SESSION['sound_mail'] = 0;
}
break;
} ///Закрывающий switch
require_once H.'/core/foot.php';
?>