Advertisement
AsviS

Untitled

Jul 26th, 2015
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.96 KB | None | 0 0
  1. <?php
  2. if ($_POST) { // если передан массив POST
  3.     $name = htmlspecialchars(trim($_POST["name"])); // пишем данные в переменные и экранируем спецсимволы
  4.     $email = htmlspecialchars(trim($_POST["email"]));
  5.     $subject = htmlspecialchars($_POST["subject"]);
  6.     $message = htmlspecialchars($_POST["message"]);
  7.     $json = array(); // подготовим массив ответа
  8.     if (!$name or !$email or !$subject or !$message) { // если хоть одно поле оказалось пустым
  9.         $json['error'] = 'You did not fill in all the fields !'; // пишем ошибку в массив
  10.         echo json_encode($json); // выводим массив ответа
  11.         die(); // умираем
  12.     }
  13.     if(!preg_match("|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $email)) { // проверим email на валидность
  14.         $json['error'] = 'Not true format email! >_<'; // пишем ошибку в массив
  15.         echo json_encode($json); // выводим массив ответа
  16.         die(); // умираем
  17.     }
  18.  
  19.     function mime_header_encode($str, $data_charset, $send_charset) { // функция преобразования заголовков в верную кодировку
  20.         if($data_charset != $send_charset)
  21.         $str=iconv($data_charset,$send_charset.'//IGNORE',$str);
  22.         return ('=?'.$send_charset.'?B?'.base64_encode($str).'?=');
  23.     }
  24.     /* супер класс для отправки письма в нужной кодировке */
  25.     class TEmail {
  26.     public $from_email;
  27.     public $from_name;
  28.     public $to_email;
  29.     public $to_name;
  30.     public $subject;
  31.     public $data_charset='UTF-8';
  32.     public $send_charset='windows-1251';
  33.     public $body='';
  34.     public $type='text/plain';
  35.  
  36.     function send(){
  37.         $dc=$this->data_charset;
  38.         $sc=$this->send_charset;
  39.         $enc_to=mime_header_encode($this->to_name,$dc,$sc).' <'.$this->to_email.'>';
  40.         $enc_subject=mime_header_encode($this->subject,$dc,$sc);
  41.         $enc_from=mime_header_encode($this->from_name,$dc,$sc).' <'.$this->from_email.'>';
  42.         $enc_body=$dc==$sc?$this->body:iconv($dc,$sc.'//IGNORE',$this->body);
  43.         $headers='';
  44.         $headers.="Mime-Version: 1.0\r\n";
  45.         $headers.="Content-type: ".$this->type."; charset=".$sc."\r\n";
  46.         $headers.="From: ".$enc_from."\r\n";
  47.         return mail($enc_to,$enc_subject,$enc_body,$headers);
  48.     }
  49.  
  50.     }
  51.  
  52.     $emailgo= new TEmail; // инициализируем супер класс отправки
  53.     $emailgo->from_email= $email; // от кого
  54.     $emailgo->from_name= 'Message from site';
  55.     $emailgo->to_email= '[email protected]'; // кому
  56.     $emailgo->to_name= $name;
  57.     $emailgo->subject= $subject; // тема
  58.     $emailgo->body= $message; // сообщение
  59.     $emailgo->send(); // отправляем
  60.  
  61.     $json['error'] = 0; // ошибок не было
  62.  
  63.     echo json_encode($json); // выводим массив ответа
  64. } else { // если массив POST не был передан
  65.     echo 'GET LOST!'; // высылаем
  66. }
  67. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement