<?php
##########################################
###### StanisovMail
###### автор Stanisov aka Stanislav M. (Stasmen)
###### icq 476119667
###### [email protected]
##########################################
Error_Reporting(E_ALL & ~E_NOTICE);
Error_Reporting (ERROR | WARNING);
##########################################
$start_time = microtime();
$start_array = explode(" ", $start_time);
$start_time = $start_array[1] + $start_array[0]; // засекаем время
include "config.php"; // подключаем настройки
/* Создаем куки для хранения числа писем пользователя на неогр срок в заданной директории */
$_COOKIE['user_counter'] = htmlspecialchars($_COOKIE['user_counter']);
if(isset($_COOKIE['user_counter']))
{
$counter = $_COOKIE['user_counter']+1;
}
setcookie("user_counter", $counter, 0x6FFFFFFF, "/".$path."/mail.php");
$_COOKIE['user_counter'] = $user_counter;
if(empty($_COOKIE['user_counter']))
{
$user_counter = Null;
$array[5] = "";
}
else
{
$array[5] = "ваших:";
}
##########################################
// ФОРМАТИРУЕМ
if($mail_sender == "")
{
$mail_to = $_POST["mail_to"];
}
$subject = $_POST["subject"];
$email = $_POST["email"];
$link = $_POST["link"];
$number = $_POST["number"];
$text = $_POST["text"];
$chis = $_POST["chis"];
$subject = htmlspecialchars(trim($subject));
if($_POST['checkbox'] != True)
{
$text = htmlspecialchars(trim($text));
}
else
{
$text = str_replace("script", "скрипт", $text);
$text = str_replace("Script", "Скрипт", $text);
$text = str_replace("SCRIPT", "СКРИПТ", $text);
$text = str_replace("<?", "#", $text);
$text = str_replace("?>", "#", $text);
$text = str_replace("$", "USD", $text);
$text = str_replace("<body>", "", $text);
$text = str_replace("</body>", "", $text);
$text = str_replace("</html>", "", $text);
$text = str_replace("</html>", "", $text);
}
$text = substr($text,0,1000); // обрезаем текст до 1000 символов
##########################################
// ТРАНСЛИТ
function latrus($string)
{
$string = ereg_replace("j","ж",$string);
$string = ereg_replace("J","Ж",$string);
$string = ereg_replace("yo","ё",$string);
$string = ereg_replace("Yu","Ю",$string);
$string = ereg_replace("Shc","Щ",$string);
$string = ereg_replace("shc","щ",$string);
$string = ereg_replace("yu","ю",$string);
$string = ereg_replace("sh","ш",$string);
$string = ereg_replace("ye","э",$string);
$string = ereg_replace("ya","я",$string);
$string = ereg_replace("Sh","Ш",$string);
$string = ereg_replace("Ch","Ч",$string);
$string = ereg_replace("ch","ч",$string);
$string = ereg_replace("Yo","Ё",$string);
$string = ereg_replace("Ya","Я",$string);
$string = ereg_replace("Ye","Э",$string);
$string = ereg_replace("i","и",$string);
$string = ereg_replace("'","ь",$string);
$string = ereg_replace("c","ц",$string);
$string = ereg_replace("u","у",$string);
$string = ereg_replace("k","к",$string);
$string = ereg_replace("e","е",$string);
$string = ereg_replace("n","н",$string);
$string = ereg_replace("g","г",$string);
$string = ereg_replace("z","з",$string);
$string = ereg_replace("h","х",$string);
$string = ereg_replace("''","ъ",$string);
$string = ereg_replace("f","ф",$string);
$string = ereg_replace("x","ы",$string);
$string = ereg_replace("v","в",$string);
$string = ereg_replace("a","а",$string);
$string = ereg_replace("p","п",$string);
$string = ereg_replace("r","р",$string);
$string = ereg_replace("o","о",$string);
$string = ereg_replace("l","л",$string);
$string = ereg_replace("d","д",$string);
$string = ereg_replace("s","с",$string);
$string = ereg_replace("m","м",$string);
$string = ereg_replace("t","т",$string);
$string = ereg_replace("b","б",$string);
$string = ereg_replace("Y","Й",$string);
$string = ereg_replace("C","Ц",$string);
$string = ereg_replace("U","У",$string);
$string = ereg_replace("K","К",$string);
$string = ereg_replace("E","Е",$string);
$string = ereg_replace("N","Н",$string);
$string = ereg_replace("G","Г",$string);
$string = ereg_replace("Z","З",$string);
$string = ereg_replace("H","Х",$string);
$string = ereg_replace("F","Ф",$string);
$string = ereg_replace("X","Ы",$string);
$string = ereg_replace("V","В",$string);
$string = ereg_replace("A","А",$string);
$string = ereg_replace("P","П",$string);
$string = ereg_replace("R","Р",$string);
$string = ereg_replace("O","О",$string);
$string = ereg_replace("L","Л",$string);
$string = ereg_replace("D","Д",$string);
$string = ereg_replace("y","й",$string);
$string = ereg_replace("S","С",$string);
$string = ereg_replace("M","М",$string);
$string = ereg_replace("I","И",$string);
$string = ereg_replace("T","Т",$string);
$string = ereg_replace("B","Б",$string);
return $string;
}
if($_POST['checkboxtran'] = True)
{
$text = latrus($text);
}
##########################################
/* Cтавим условия и отбираем, што правильно, а што не */
if ($mail_sender == "")
{
if (empty($mail_to))
{
require"top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">Не написан адрес получателя!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
elseif(!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $mail_to))
{
require"top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">Не верно написан формат мыла получателя!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
}
if(empty($subject))
{
if($mail_sender =="")
{
$subject = "";
}
else
{
$subject = "from $url";
}
}
elseif(strlen($subject) > 30)
{
require "top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">В теме запрещено писать более 30 символов!<br />
Можете не писать тему, используя сообщение!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
if (empty($email))
{
$email = "[email protected]";
}
elseif(!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email))
{
require"top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">Не верно написан формат мыла отправителя!<br />
Если не знаешь как его писать или не имеешь вообще почтового ящика, то не заполняй это поле!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
if(empty($number))
{
$number = "";
}
elseif(strlen($number)!=11 && strlen($number)!=12)
{
require"top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">Номер должен содержать только цифры! 11 или 12!<br />
Если не хотите его писать, то не заполняйте это поле!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
if(eregi("[^0-9]",$number) && $number!="")
{
require"top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">Номер должен содержать только цифры!<br />
Если не хотите его писать, то не заполняй это поле!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
if (empty($link))
{
$link = "";
}
elseif(!eregi('^[A-Za-z0-9.\-]{1,30}\.[a-zA-Z0-9]{2,4}$', $link))
{
require"top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">Ваша ссылка имеет не верный формат!<br />
Введите в виде: <i><a href="http://'.$url.'">'.$url.'</a></i></div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
if(strlen($link) > 30)
{
require"top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">Слишком длинный сайт!<br />
Не пишите рекламные ссылки, иначе ваше письмо проигнорируется администрацией!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
if (empty($text))
{
require"top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">Ты не написал текст сообщения!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
$bro = fopen("brow.dat", "r+");
while (!feof($bro))
{
$brow = fgets ($bro,1024);
}
if ($chis == $brow)
{
echo"";
$brow = rand(1000, 9999);
$bro = fopen("brow.dat", "w+");
fwrite($bro, $brow);
fclose($bro);
}
else
{
$brow = rand(1000, 9999);
$bro = fopen("brow.dat", "w+");
fwrite($bro, $brow);
fclose($bro);
require "top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">
Код на строке - не совпадает с вашим введенным кодом!<br />
Пожалуйста, пишите все правильно!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;}
##########################################
// ОРГАНИЗОВУЕМ UPLOAD
if($attach == "1") // если включен режим аттача, то...
{
if($_POST['ok']) // если нажата кнопка отправить, то...
{
if(!empty($_FILES['upload_file']['name']))
{
uploading_file($upload_file);
}
}
}
##########################################
/* Дале, мы узнаем юзер-аген и ИП пишущего нам письмо, а также откуда пришел */
if (getenv("HTTP_X_FORWARDED_FOR"))
{
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
else
{
$ip = getenv("REMOTE_ADDR");
}
$browser = getenv('HTTP_USER_AGENT');
$host = gethostbyaddr($REMOTE_ADDR);
$ip = htmlspecialchars(stripslashes($ip));
$browser = htmlspecialchars(stripslashes($browser));
$host = htmlspecialchars(stripslashes($host));
##########################################
// НАСТРАИВАЕМ ДАТУ
$t = date("H:i", mktime(date("H")-1)); // время формата 15:35, -1 это отклонение на 1 час
$d = date("d F", time());
$d1 = array('January','February','March','April','May','June','July','August','September','October','November','December');
$d2 = array('Января','Февраля','Марта','Апреля','Мая','Июня','Июля','Августа','Сентября','Октября','Ноября','Декабря');
$d = str_replace($d1, $d2 ,$d);
##########################################
/* создаем файл для хранения числа отправленных писем всего */
$file = fopen("stat.dat","a+");
flock($file, LOCK_EX);
$count = fread($file, 100);
@$count++;
ftruncate($file, 0);
fwrite($file, $count);
fflush($file);
flock($file, LOCK_UN);
fclose($file);
##########################################
// ФОРМИРОВАНИЕ ПИСЬМА
$subject = '=?utf-8?B?'.base64_encode(convert_cyr_string($subject, "u","k")).'?='; // кодируем тему
if(!isset($_POST['checkbox']) || $_POST['checkbox'] != True)
// ФОРМИРОВАНИЕ ТХТ ПИСЬМА
{
$headers = "From: $email\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "Content-Type: text/plain; charset=\"$charset\"\r\n";
$headers .= "X-Mailer: WAP.MOBSLAY.COM by Stanisov";
if($mess_num == "1")
{
$array[0] = "Сообщение $count:"; // выводим номер сообщения в письме
}
else
{
$array[0] = "Сообщение:";
}
if(!empty($link))
{
$array[1] = "\nСайт:";
}
else
{
$array[1] = ""; // не выводим сайт если не заполнено поле
}
if(!empty($number))
{
$array[2] = "\nНомер:";
}
else
{
$array[2] = ""; // не выводим номер если не заполнено поле
}
if($ip !== $host)
{
$array[3] = "Хост: $host\n";
}
else
{
$array[3] = ""; // не выводим хост если он и IP одинаковы
}
if($mess_date == "1")
{
$array[4] = "Отправлено: $d, $t\n"; // фиксируем дату отправки
}
else
{
$array[4] = "";
}
if($show_info == "1")
{
$message = "$array[0] $text $array[1] $link $array[2] $number\nIP: $ip\n$array[3]Браузер: $browser\n$array[4]";
}
else
{
$message = "$array[0] $text $array[1] $link $array[2] $number\n$array[4]";
}
}
else
// ФОРМИРОВАНИЕ HTML ПИСЬМА
{
$headers = "From: $email\r\n";
$headers .= "Content-Type: text/html; charset=\"$charset\"\r\n";
$headers .= "X-Mailer: Partizan aka Stanislav M.";
$b1 = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=$charset\">\n<title>FROM SITE</title>\n</head>\n<body>\n";
$b2 = "</body>\n</html>\n";
if($mess_num == "1")
{
$array[0] = "Сообщение $count:"; // выводим номер сообщения в письме
}
else
{
$array[0] = "Сообщение:";
}
$mes1 = "$b1<font color = \"red\"><b>$array[0]</b></font> $text<br />\n"; // ТЕКСТ
if($show_link == "1" && !empty($link))
{
$site1 = "<b>Сайт:</b> <a href =\"http://$link\">$link</a><br />\n"; // САЙТ
}
else
{
$site1 = "";
}
if($show_num = "1" && !empty($number))
{
$num1 = "<b>Номер:</b> $number<br />\n"; // НОМЕР
}
else
{
$num1 = "";
}
$ip1 = "<b>IP:</b> $ip<br />\n"; // ИП
if($ip !== $host)
{
$host1 = "<b>Хост:</b> $host<br />\n"; // ХОСТ
}
else
{
$host1 = "";
}
$brow1 = "<b>Браузер:</b> $browser<br />\n"; // БРАУЗЕР
if($mess_date == "1")
{
$date1 = "<small><i><b>Отправлено:</b> $d, $t</i></small><br />\n$b2"; // фиксируем дату отправки
}
else
{
$date1 = "";
}
// Соединяем элементы в единое сообщение
if($show_info == "1")
{
$message = $mes1.$site1.$num1.$ip1.$host1.$brow1.$date1;
}
else
{
$message = $mes1.$site1.$num1.$date1;
}
}
##########################################
/* Готовим мыло к отправке, упорядочиваем и отправляем */
include "config.php";
if(mail($mail_to , $subject , $message , $headers))
{
$end_time = microtime();
$end_array = explode(" ", $end_time);
$end_time = $end_array[1] + $end_array[0];
$time = $end_time - $start_time; // засекаем конечное время
require "top.php";
echo '<div class="top">
<b>ОТПРАВЛЕНО</b></div>
<div class="center">Твое сообщение было удачно отправлено! Жди моего ответа в ближайшее время!<br />';
printf("Готово за [%f] сек.", $time);
echo '</div>
<div class="bottom">Всего отошло: <font color="red">'.$count.'</font> '.$array[5].' <font color="red">'.$user_counter.'</font></div>
<div class="bottom"><b><a href="http://'.$url.'">'.$site.'</a></b></div>
</body></html>';
exit;} // ПИСЬМО ОТОШЛО!
else
{
require "top.php";
echo '<div class="top">
<b>ОБЛОМ</b></div>
<div class="center">Ошибка при отправке сообщения! Попробуйте позже!</div>
<div class="line">
[<a href="index.php">ВЕРНУТЬСЯ</a>]</div>
<div class="bottom"><a href="http://'.$url.'">'.$site.'</a></div></body></html>';
exit;} // ПИСЬМО ОТОШЛО!
##########################################
?>