Вход Регистрация
Файл: wapxl.ru/user/messages/add.php
Строк: 168
<?
echo '<div class="col-md-8 col-sm-12 col-xs-12"><div class="panel panel-default">';
echo 
'<div class="panel-heading">  <b>Написать сообщение</b></div>
<div class="panel-body">'
;
// Определяем диалог
$dialog = isset ($_REQUEST['dialog']) ? func::checkin($_REQUEST['dialog']) : false;

$resud core:: $db -> queryFetch("SELECT * FROM `messages` WHERE  `id`=?", array($dialog));
if (!empty(
$dialog) && !isset($resud['id'])){
func::errors('<b>Такого диалога нет!</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
}




if (empty(
$act)){




if (empty(
$dialog)){

// проверяем есть ли диалог между 2 пользователями и выбираем данные из таблы
$resu core:: $db -> queryFetch("SELECT * FROM `messages` WHERE  (`users` = ? or `users` = ?) and `cols`=?", array("::".core::$user['id']."::".user::user_inf($nk)."::","::".user::user_inf($nk)."::".core::$user['id']."::",2));
if (isset(
$resu['id'])){
// Провееряем не покидал ли юзер этот диалог
$ruse1 core:: $db -> queryFetch("SELECT * FROM `mess_users` WHERE  `user_id`=? and `dialog`=?", array(core::$user['id'],$resu['id']));
if (
$ruse1['aut']==1){
// Если покидал, снова даем ему доступ

$dbi core::$db -> prepare("UPDATE `mess_users` SET `aut`=? WHERE  `user_id`=? and `dialog`=?");
$dbi -> execute(0,core::$user['id'],$resu['id']);
}
// Провееряем не покидал ли аппонент этот диалог
$ruse2 core:: $db -> queryFetch("SELECT * FROM `mess_users` WHERE  `user_id`=? and `dialog`=?", array(user::user_inf($nk),$resu['id']));
if (
$ruse2['aut']==1){
// Если покидал, снова даем ему доступ
$dbi core::$db -> prepare("UPDATE `mess_users` SET `aut`=? WHERE  `user_id`=? and `dialog`=?");
$dbi -> execute(0,user::user_inf($nk),$resu['id']);
}

/*Задаем правила сортировки переадресации на страницу диалога */
$order core::$user['p_sort'] ? 'end' '1';
// Переадресуем в диалог
header ('Location: messages.php?mod=dialog&dialog='.$resu['id'].'&page='.$order.'&'.SID);

}

echo 
'<form action="?mod=add&amp;act=act&amp;'.SID.'" method="post"   name="form"  enctype="multipart/form-data">';

echo 
"Кому (Ник/ID):<br /><input name='nk' maxlength='15' value='$nk' title='komu'/><br/>n";
}else{

// Проверка на участие в диалоге
$mess_users core::$db->query("SELECT * FROM `mess_users` WHERE  `dialog`=? and `user_id`=? and `aut`=?", array($dialog,core::$user['id'],0));
if (
$mess_users->fetchColumn() == 0)func::errors('<b>Вы не участвуете в этом диалоге</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');


echo 
'<a href="?" class="href">Диалоги</a> | <b><a href="?mod=dialog&amp;dialog='.$dialog.'" class="href">Диалог</a>  с</b> ';

$read core::$db->query("SELECT * FROM `mess_users` WHERE  `dialog`=? and `user_id`!=?", array($dialog,core::$user['id']));

while (
$r $read -> fetch()) {
$k $k++;
echo 
user::nik($r['user_id']).(($k>1) ? ', ' '');
}

echo 
'<dt></dt><br />';
}

echo 
'Сообщение:<br /><textarea cols="'.core::$user['pole2'].'" rows="'.core::$user['pole1'].'" name="msg">'.bbcode::br($_SESSION['msg']).'</textarea><br/>';
if (
core::$user['bbpnel']==|| (core::$user['bbpnel']==&& func::is_mobile()==0)){
echo 
$div3;
func::quickpaste('msg');
echo 
$div9;
}
echo 
"Прикрепить файл: (<a href='".H."PAGES/help.php?filepr'>?</a>)<br/><input type='file' name='fail'/><br /> ";
echo 
'<br /><input type="submit" class="ibutton" value="Написать"/></form><br /><br />';

unset(
$_SESSION['msg']);

}else{


$reg_kod = isset($_POST['kod']) ? func::checkin($_POST['kod']) : '';

$msg func::checkin($_POST['msg']);



// Проверка на спам
$old = (core::$level core::$set['lev_min']) ? core::$set['sek_min'] : core::$set['sek_max'];
$query = @mysql_query("SELECT * FROM `mess_out` WHERE  `user_id` = '".core::$user['id']."' AND `time` > '".(core::$realtime-$old)."';");
$query core::$db->query("Select *  FROM `mess_dialog` WHERE  `user_id`=? and `dialog`=? and `time`>?", array(core::$user['id'],$dialog,(core::$realtime-$old)));
if (
$query->fetchColumn() > 0){
func::spamer_on('',$old);
func::errors('<b>Вы не можете так часто писать<br/>Порог '.$old.' секунд</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
}

// Проверка постов
if (core::$user[core::$set['posts_act']]<core::$set['posts_pr'])func::errors('<b>Чтобы писать записки, нужно набрать '.core::$set['posts_pr'].' постов форума!</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// Ввод сообщения
if (func::utf_strlen($msg)==0)func::errors('<b>Пустое сообщение!</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');



$fail 0;
$fails 0;

// Обработка файла (если есть)
if ($_FILES['fail']['size'] > 0){
func::disk_limit($_FILES['fail']['size']);
$fname strtolower($_FILES['fail']['name']);
$fnames=$_FILES['fail']['name'];
$fsize $_FILES['fail']['size'];

// Список допустимых расширений файлов.
$al_ext = array('rar''zip''pdf''txt''tar''gz''jpg''jpeg''gif''png''bmp''3gp''mp3''mpg''sis''thm''jar''jad''cab''sis''sisx''exe''msi');
$ext explode("."$fname);

// Проверка на допустимый размер файла
if ($fsize >= 1024 core::$set['flsz_pr'])func::errors('Вес файла превышает <b>'.core::$set['flsz_pr'].'</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');

if ((
preg_match("/.php/i"$fnames)) or (preg_match("/.pl/i"$fnames)) or ($fnames == ".htaccess"))func::errors('<b>Файлы такого типа запрещены!</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');


// Проверка файла на наличие только одного расширения
if (count($ext) != 2)func::errors('<b>Запрещены файлы не имеющие имени, расширения, или с двойным расширением.</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');

// Проверка допустимых расширений файлов
if (!in_array($ext[1], $al_ext))func::errors('Запрещенный тип файла!<br />К отправке разрешены только файлы, имеющие следующее расширение:<br /><b>'.implode(', '$al_ext).'</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');


// Проверка на длину имени
if (strlen($fname) > 30)func::errors('<b>Длина названия файла не должна превышать 30 символов!</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');

// Проверка на запрещенные символы
if (eregi("[^a-z0-9.()+_-]"$fname))func::errors('В названии файла "<b>' $fname '</b>" присутствуют недопустимые символы.<br />Разрешены только латинские символы, цифры и некоторые знаки ( .()+_- )<br />Запрещены пробелы.<br />''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');


// Проверка наличия файла с таким же именем
if (file_exists(H."sites/".core::$site['domain']."/modul_files/privat/$fname")) {
$fname core::$realtime.'_'.$fname;
}


if ((
move_uploaded_file($_FILES["fail"]["tmp_name"], H."sites/".core::$site['domain']."/modul_files/privat/$fname")) == true) {
//echo 'Файл прикреплен!<br/>';
$fail H."sites/".core::$site['domain']."/modul_files/privat/$fname";
$fails $fsize;
}else {
func::errors('<b>Ошибка отправки файла.</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');;
}


}





// Если пишем пользователю не из диалога
if(!empty($nk) && empty($dialog)){

// проверка на существование юзера
if (!user::user_inf($nk))func::errors('<b>Такого пользователя нет!</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// попытки написать себе
if (user::user_inf($nk) == core::$user['id'])func::errors('<b>Себе пишешь?</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');

if (
user::ignor(user::user_inf($nk),core::$user['id']))func::errors('<b>Вы не можете писать этому пользователю, т.к. он отправил вас в игнор.</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');

// проверяем есть ли диалог между 2 пользователями и выбираем данные из таблы
$resu core:: $db -> queryFetch("SELECT * FROM `messages` WHERE  (`users` = ? or `users` = ?) and `cols`=?", array("::".core::$user['id']."::".user::user_inf($nk)."::","::".user::user_inf($nk)."::".core::$user['id']."::",2));

// Провееряем не покидал ли юзер этот диалог
$ruse1 core:: $db -> queryFetch("SELECT * FROM `mess_users` WHERE  `user_id`=? and `dialog`=?", array(core::$user['id'],$resu['id']));
if (
$ruse1['aut']==1){ // Если покидал, снова даем ему доступ

$dbi core::$db -> prepare("UPDATE `mess_users` SET `aut`=? WHERE  `user_id`=? and `dialog`=?");
$dbi -> execute(0,core::$user['id'],$resu['id']);
}
// Провееряем не покидал ли аппонент этот диалог
$ruse2 core:: $db -> queryFetch("SELECT * FROM `mess_users` WHERE  `user_id`=? and `dialog`=?", array(user::user_inf($nk),$resu['id']));
if (
$ruse2['aut']==1){
// Если покидал, снова даем ему доступ
$dbi core::$db -> prepare("UPDATE `mess_users` SET `aut`=? WHERE  `user_id`=? and `dialog`=?");
$dbi -> execute(0,user::user_inf($nk),$resu['id']);
}

// если пишем из диалога
}elseif(!empty($dialog)){

// проверяем есть ли диалог и выбираем данные из таблы
$resu core:: $db -> queryFetch("SELECT * FROM `messages` WHERE  `id`=?", array($dialog));
if (!isset(
$resu['id'])){
func::errors('<b>Такого диалога нет!</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
}
// если диалог между двумя проверяем не покидал ли 2 диалог
if ($resu['cols']==2){

// Провееряем не покидал ли юзер этот диалог
$ruse1 core:: $db -> queryFetch("SELECT * FROM `mess_users` WHERE  `user_id`!=? and `dialog`=?", array(core::$user['id'],$resu['id']));
if (
$ruse1['aut']==1){
// Если покидал, снова даем ему доступ
$dbi core::$db -> prepare("UPDATE `mess_users` SET `aut`=? WHERE  `user_id`!=? and `dialog`=?");
$dbi -> execute(0,core::$user['id'],$resu['id']);
}

// проверка на существование юзера
if (!user::user_inf($ruse1['user_id']))func::errors('<b>Такого пользователя нет!</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// попытки написать себе
if (user::user_inf($ruse1['user_id']) == core::$user['id'])func::errors('<b>Себе пишешь?</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');

// Игнор
if (user::ignor(user::user_inf($ruse1['user_id']),core::$user['id']))func::errors('<b>Вы не можете писать этому пользователю, т.к. он отправил вас в игнор.</b>''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');



}

// если нет пользователя и диалога выводим ошибку
}else func::errors('<b>Ошибка!</b><br />Сообщите администрации''<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');

// если диалог не найден
if (!isset($resu['id'])){

// создаем диалог между 2 пользователями
$dbi core::$db -> prepare("INSERT INTO `messages` SET `users`=?, `time`=?, `cols`=?");
$dbi -> execute("::".core::$user['id']."::".user::user_inf($nk)."::",core::$realtime,2);
// определяем ID созданного диалога
$dialog core::$db -> lastInsertId();
// Получаем данные созданного диалога
$resu core:: $db -> queryFetch("SELECT * FROM `messages` WHERE  `id` = '" $dialog "'");
// Записываем пользователей которым доступен этот диалог
$dbi core::$db -> prepare("INSERT INTO `mess_users` SET `user_id`=?, `dialog`=?");
$dbi -> execute(core::$user['id'],$dialog);
$dbi -> execute(user::user_inf($nk),$dialog);

// если диалог найден
}else{
// определяем ID  диалога
$dialog $resu['id'];

// изменяем время диалога
$dbi core::$db -> prepare("UPDATE `messages` SET `time`=? WHERE  `id`=?");
$dbi -> execute(core::$realtime,$dialog);

}

// Создаем сообщение
$dbi core::$db -> prepare("INSERT INTO `mess_dialog` SET `user_id`=?, `users`=?, `time`=?, `msg`=?, `fail`=?, `fails`=?, `dialog`=?");
$dbi -> execute(core::$user['id'],$resu['users'],core::$realtime,$msg,$fail,$fails,$dialog);
// Определяем ид сообщения
$mess_id core::$db -> lastInsertId();

//Выводим пользователей участвующих в диалоге, кроме того кто пишет сообщение
$read core::$db->query("SELECT * FROM `mess_users` WHERE  `dialog`=? and `user_id`!=? and `aut`!=?", array($dialog,core::$user['id'],1));

// Делаем запись в таблицу непрочтенных сообщений
while ($a $read -> fetch()) {
$dbi core::$db -> prepare("INSERT INTO `mess_read` SET `user_id`=?, `mess_id`=?, `dialog`=?");
$dbi -> execute($a['user_id'],$mess_id,$dialog);
}


echo 
'Сообщение для <b>'.user::user_inf($nk,'user').'</b> отправлено!<br />';


/*Задаем правила сортировки переадресации на страницу диалога */
$order core::$user['p_sort'] ? 'end' '1';

header ('Location: messages.php?mod=dialog&dialog='.$dialog.'&page='.$order.'&'.SID);
/*if(user::user_inf($nk,'avtootvet')!=NULL){
echo '<p>Автоответчик: '.user::user_inf($nk,'avtootvet').'</p>';
}*/


}
echo 
'</div></div>';

?>
Онлайн: 1
Реклама