Просмотр файла mail.php

Размер файла: 17.38Kb
<?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;} //  ПИСЬМО ОТОШЛО!
##########################################
?>