За последние 24 часа нас посетили 18189 программистов и 1700 роботов. Сейчас ищут 1745 программистов ...

Помогите с формой обратной связи

Тема в разделе "Работа с почтой", создана пользователем amosov007, 27 окт 2015.

  1. amosov007

    amosov007 Новичок

    С нами с:
    27 окт 2015
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте, я в php полный 0. Что-то пробовал сделать, но вообще никак не разберусь без сторонней помощи. Если кому не сложно помогите, пожалуйста.
    Код (PHP):
    1. <form action="send.php" name="contact_form" id="contact_form" class="form-widget">
    2.                             <input type="text" placeholder="Ваше имя" id="name" name="name" class="validate[required]" data-prompt-position="topLeft:0">
    3.                             <input type="text" placeholder="Ваш e-mail" id="email_address" name="email_address" class="validate[required,custom[email]]" data-prompt-position="topLeft:0">
    4.                             <input type="text" placeholder="Телефон" id="subject" name="subject" class="validate[required] no-margin-right" data-prompt-position="topLeft:0">
    5.                             <textarea placeholder="Текст сообщения" id="msg" name="msg" class="validate[required]" data-prompt-position="topLeft:0"></textarea>
    6.                             <input type="submit" class="btn btn-medium btn-dark btn-square" value="Отправить">
    7.                         </form> 
    Код (PHP):
    1. <?
    2. if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они
    3.         $to = 'melnychuk1985@gmail.com'; //Почта получателя, через запятую можно указать сколько угодно адресов
    4.         $subject = 'Обратный звонок'; //Загаловок сообщения
    5.         $message = '
    6.                 <html>
    7.                     <head>
    8.                         <title>'.$subject.'</title>
    9.                     </head>
    10.                     <body>
    11.                         <p>Имя: '.$_POST['name'].'</p>
    12.                         <p>Телефон: '.$_POST['phone'].'</p>                        
    13.                     </body>
    14.                 </html>'; //Текст нащего сообщения можно использовать HTML теги
    15.         $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
    16.         $headers .= "From: Отправитель <from@example.com>\r\n"; //Наименование и почта отправителя
    17.         mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
    18. }
    19. ?>
    Код (PHP):
    1.     <script type="text/javascript">
    2. $(document).ready(function(){
    3.     $("#contact_form").submit(function() { //устанавливаем событие отправки для формы с id=form
    4.             var form_data = $(this).serialize(); //собераем все данные из формы
    5.             $.ajax({
    6.             type: "POST", //Метод отправки
    7.             url: "send.php", //путь до php фаила отправителя
    8.             data: form_data,
    9.             success: function() {
    10.                    //код в этом блоке выполняется при успешной отправке сообщения
    11.                    alert("Ваше сообщение отпрвлено!");
    12.             });
    13.     });
    14. });    
    15. </script>
    Как это все связать чтобы работало и пользователь вводил имя, емейл, телефон и сообщение.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    а что именно не связанно?
     
  3. amosov007

    amosov007 Новичок

    С нами с:
    27 окт 2015
    Сообщения:
    6
    Симпатии:
    0
    Да просто все не работает, я не знаю что там не так
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    начни тогда с проверки данных самой формы, потому как, там не указан способ передачи - GET или POST ($;
     
  5. amosov007

    amosov007 Новичок

    С нами с:
    27 окт 2015
    Сообщения:
    6
    Симпатии:
    0
    Код (Text):
    1. <form method="post" action="send.php" name="contact_form" id="contact_form" class="form-widget">
    Так?

    Добавлено спустя 49 секунд:
    Помогите с формой, я оплачу работу, скажем 5 долларов?
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    пока так ((:)
    ничего гарантировать не могу ((:) Могу поковырять и сделать за $7,77 o_O
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    сделаю за $7.76
     
  8. amosov007

    amosov007 Новичок

    С нами с:
    27 окт 2015
    Сообщения:
    6
    Симпатии:
    0
    Я бы и 7.77 заплатил, но такими магически-космическими суммами боюсь распоряжаться ;)
     
  9. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Валдиса Пельша тут еще не хватает ((((((:)
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    $10 качественно
     
  11. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Всего за $35.43 предложу 3 варианта решения проблемы на выбор )
     
  12. amosov007

    amosov007 Новичок

    С нами с:
    27 окт 2015
    Сообщения:
    6
    Симпатии:
    0
    Ребята, за 35 долларов я сам сяду, потрачу день, а у нас мало кто за день 35 долларов получает, и найду решение проблемы.
     
  13. amosov007

    amosov007 Новичок

    С нами с:
    27 окт 2015
    Сообщения:
    6
    Симпатии:
    0
    Проблему решил, всем спасибо: кому за помощь, кому за предложение ;)
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Вот ещё вариант

    Код (PHP):
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    4.     if ( empty($_POST['name']) ) {
    5.         exit('Имя нужно заполнить');
    6.     } else if(empty($_POST['email_address']) || !filter_var($_POST['email_address'], FILTER_VALIDATE_EMAIL)) {
    7.         exit('Email содержит ошибки.');
    8.     } else if (empty($_POST['subject'])) {
    9.         exit('Телефон нужно указать.');
    10.     } else if (empty($_POST['msg'])) {
    11.         exit('Телефон нужно указать.');
    12.     } else {
    13.         //Проверка отправилось ли наше поля name и не пустые ли они
    14.         $to = 'i@example.com'; //Почта получателя, через запятую можно указать сколько угодно адресов
    15.         $subject = 'Обратный звонок'; //Загаловок сообщения
    16.         $message = '
    17.                 <html>
    18.                     <head>
    19.                         <title>'.$subject.'</title>
    20.                     </head>
    21.                     <body>
    22.                         <p>Имя: '.$_POST['name'].'</p>
    23.                         <p>Телефон: '.$_POST['subject'].'</p>
    24.                         <p>'.$_POST['msg'].'</p>
    25.                     </body>
    26.                 </html>'; //Текст нащего сообщения можно использовать HTML теги
    27.         $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
    28.         $headers .= "From: PHP.RU <".$_POST['email_address'].">\r\n"; //Наименование и почта отправителя
    29.  
    30.         //Отправка письма с помощью функции mail
    31.         if(mail($to, $subject, $message, $headers))
    32.         {
    33.             exit('Возможно письмо отправлено.');
    34.         } else {
    35.             exit('Ошибка при отправке письма.');
    36.         }
    37.     }
    38.     exit('Ошибка.');
    39. }
    40. ?>
    41. <!DOCTYPE html>
    42. <html>
    43. <head>
    44.     <title></title>
    45. </head>
    46. <body>
    47.  
    48. <form action="m.php" method="POST" name="contact_form" id="contact_form" class="form-widget">
    49.     <input type="text" placeholder="Ваше имя" id="name" name="name" class="validate[required]" data-prompt-position="topLeft:0">
    50.     <input type="text" placeholder="Ваш e-mail" id="email_address" name="email_address" class="validate[required,custom[email]]" data-prompt-position="topLeft:0">
    51.     <input type="text" placeholder="Телефон" id="subject" name="subject" class="validate[required] no-margin-right" data-prompt-position="topLeft:0">
    52.     <textarea placeholder="Текст сообщения" id="msg" name="msg" class="validate[required]" data-prompt-position="topLeft:0"></textarea>
    53.  
    54.     <input type="submit" class="btn btn-medium btn-dark btn-square" value="Отправить">
    55. </form> 
    56.  
    57. <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    58. <script type="text/javascript">
    59.     $("#contact_form").submit(function() { //устанавливаем событие отправки для формы с id=form
    60.         var form_data = $(this).serialize(); //собераем все данные из формы
    61.         $.ajax({
    62.         type: "POST", //Метод отправки
    63.         url: "m.php", //путь до php фаила отправителя
    64.         data: form_data,
    65.         success: function(data) {
    66.                //код в этом блоке выполняется при успешной отправке сообщения
    67.                alert(data);
    68.             }
    69.         });
    70.         event.preventDefault();
    71.     });    
    72. </script>
    73. </body>
    74. </html>
     
  15. Nickdr

    Nickdr Новичок

    С нами с:
    7 ноя 2015
    Сообщения:
    1
    Симпатии:
    0
    Парни, у меня тоже проблемка, не знаю куда прописать email, чтобы мне инфа из формы приходила, может еще какие настройки нужны, подскажите, спасибо.
    Код (PHP):
    1. <?php
    2. //Referals script start
    3. $debug=0;
    4.  
    5.  
    6. if ($debug){
    7.    $lf=fopen(dirname(__FILE__).'/'.'debug.log','a');
    8.    
    9. function writelog($s) {
    10.    global $lf,$debug;
    11.    if ($debug)
    12.       fputs($lf,"$s\n");
    13. }
    14.  
    15. $t=date('Y-m-d H:i:s');
    16. $utm='нет';
    17. $term='нет';
    18.  
    19. $ip=$_SERVER['REMOTE_ADDR'];
    20. $utmdata='';
    21. writelog("Session started (zakaz.php) at '$t', IP='$ip'");
    22. writelog("REQUEST: ".print_r($_REQUEST,true));
    23. if (isset($_COOKIE['utmdata']))
    24.     {
    25.        writelog("Found saved cookie UTMdata");
    26.     $utmdataexp=explode('&',$_COOKIE['utmdata']);
    27.     if (count($utmdataexp)>=2 && !empty($utmdataexp[0]) && !empty($utmdataexp[1]))
    28.         {
    29.         $t=$utmdataexp[0];
    30.         $utm=$utmdataexp[1];
    31.         $term=isset($utmdataexp[2]) ? $utmdataexp[2] : 'нет';
    32.            $utmdata=$t.'&'.$utm.'&'.$term;
    33.         }
    34.     }
    35. writelog("UTMdata is '$utmdata'");
    36. }
    37. //Referals script end
    38.  
    39. $act = isset($_REQUEST['act']) ? $_REQUEST['act'] : die('error');
    40. $params = isset($_REQUEST['json']) ? json_decode($_REQUEST['json'], true) : array();
    41. $jsonBox = array();
    42. $error = array();
    43. $info = array();
    44. $exemple = array();
    45. $form = array();
    46. $host = $_SERVER['HTTP_HOST'];
    47. $ref = $_SERVER['HTTP_REFERER'];
    48. $model = $_REQUEST['model'];
    49.  
    50.  
    51. $form['form-1'] = array(
    52.     'fields' => array(
    53.         'name' => array(
    54.             'title' => 'Имя',
    55.             'validate' => array(
    56.                 'preg' => '%[A-Z-a-zА-Яа-я\s]%',
    57.                 'minlength' => '3',
    58.                 'maxlength' => '35',
    59.             ),
    60.             'messages' => array(
    61.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    62.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    63.                 'maxlength' => 'Максимальная длинна поля [ %1$s ] превышает допустимую - %2$s',
    64.             )
    65.         ),
    66.         'tell' => array(
    67.             'title' => 'Телефон',
    68.             'validate' => array(
    69.                 'preg' => "/^((8|\+)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{5,10}$/",
    70.                 'minlength' => '5',
    71.             ),
    72.             'messages' => array(
    73.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    74.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    75.             )
    76.         ),
    77.         'e-mail' => array(
    78.             'title' => 'E-mail',
    79.             'validate' => array(
    80.                 'preg' => '%@%is',
    81.                 'minlength' => '5',
    82.             ),
    83.             'messages' => array(
    84.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    85.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    86.             )
    87.         ),
    88.     ),
    89.     'cfg' => array(
    90.         'charset' => 'utf-8',
    91.         'subject' => 'Заказ обратного звонка',
    92.         'title' => 'Заказ обратного звонка',
    93.         'ajax' => true,
    94.         'validate' => true,
    95.         'from_email' => 'support@ipro2.ru',
    96.         'from_name' => 'VideoNablyudenie',
    97.         'to_email' => 'support@ipro2.ru',
    98.         'to_name' => 'VideoNablyudenie',
    99.         'geoip' => true,
    100.         'referer' => true,
    101.         'type' => 'html',
    102.         'tpl' => true,
    103.         'antispam' => 'email77',
    104.         'antispamjs' => 'address77',
    105.         'okay' => '<div class="ab">ВАШЕ СООБЩЕНИЕ ОТПРАВЛЕНО!</div><div class="os">Наш специалист свяжется с вами в ближайшее время.</div>',
    106.         'fuck' => 'Сообщение отправлено - ERROR',
    107.         'spam' => 'Cпам робот',
    108.         'notify' => 'color-modal',
    109.         'usepresuf' => false
    110.     )
    111. );
    112. $form['form-2'] = array(
    113.     'fields' => array(
    114.         'tell' => array(
    115.             'title' => 'Телефон',
    116.             'validate' => array(
    117.                 'preg' => "/^((8|\+)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{5,10}$/",
    118.                 'minlength' => '5',
    119.             ),
    120.             'messages' => array(
    121.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    122.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    123.             )
    124.         ),
    125.         'e-mail' => array(
    126.             'title' => 'E-mail',
    127.             'validate' => array(
    128.                 'preg' => '%@%is',
    129.                 'minlength' => '5',
    130.             ),
    131.             'messages' => array(
    132.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    133.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    134.             )
    135.         ),
    136.         'text' => array(
    137.             'title' => 'Сообщение',
    138.         ),
    139.     ),
    140.     'cfg' => array(
    141.         'charset' => 'utf-8',
    142.         'subject' => 'Вопрос специалисту',
    143.         'title' => 'Вопрос специалисту',
    144.         'ajax' => true,
    145.         'validate' => true,
    146.         'from_email' => 'support@ipro2.ru',
    147.         'from_name' => 'VideoNablyudenie',
    148.         'to_email' => 'support@ipro2.ru',
    149.         'to_name' => 'VideoNablyudenie',
    150.         'geoip' => true,
    151.         'referer' => true,
    152.         'type' => 'html',
    153.         'tpl' => true,
    154.         'antispam' => 'email77',
    155.         'antispamjs' => 'address77',
    156.         'okay' => '<div class="ab">ВАШЕ СООБЩЕНИЕ ОТПРАВЛЕНО!</div><div class="os">Наш специалист свяжется с вами в ближайшее время.</div>',
    157.         'fuck' => 'Сообщение отправлено - ERROR',
    158.         'spam' => 'Cпам робот',
    159.         'notify' => 'color-modal',
    160.         'usepresuf' => false
    161.     )
    162. );
    163. $form['form-3'] = array(
    164.     'fields' => array(
    165.         'text' => array(
    166.             'title' => 'Сообщение',
    167.         ),
    168.         'name' => array(
    169.             'title' => 'Имя',
    170.             'validate' => array(
    171.                 'preg' => '%[A-Z-a-zА-Яа-я\s]%',
    172.                 'minlength' => '3',
    173.                 'maxlength' => '35',
    174.             ),
    175.             'messages' => array(
    176.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    177.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    178.                 'maxlength' => 'Максимальная длинна поля [ %1$s ] превышает допустимую - %2$s',
    179.             )
    180.         ),
    181.         'tell' => array(
    182.             'title' => 'Телефон',
    183.             'validate' => array(
    184.                 'preg' => "/^((8|\+)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{5,10}$/",
    185.                 'minlength' => '5',
    186.             ),
    187.             'messages' => array(
    188.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    189.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    190.             )
    191.         ),
    192.     ),
    193.     'cfg' => array(
    194.         'charset' => 'utf-8',
    195.         'subject' => 'Замер потолка',
    196.         'title' => 'Замер потолка',
    197.         'ajax' => true,
    198.         'validate' => true,
    199.         'from_email' => 'support@ipro2.ru',
    200.         'from_name' => 'VideoNablyudenie',
    201.         'to_email' => 'support@ipro2.ru',
    202.         'to_name' => 'VideoNablyudenie',
    203.         'geoip' => true,
    204.         'referer' => true,
    205.         'type' => 'html',
    206.         'tpl' => true,
    207.         'antispam' => 'email77',
    208.         'antispamjs' => 'address77',
    209.         'okay' => '<div class="ab">ЗАЯВКА НА ЗАМЕР ПОТОЛКА ОТПРАВЛЕНА!</div><div class="os">Наш специалист свяжется с вами в ближайшее время.</div>',
    210.         'fuck' => 'Сообщение отправлено - ERROR',
    211.         'spam' => 'Cпам робот',
    212.         'notify' => 'color-modal',
    213.         'usepresuf' => false
    214.     )
    215. );
    216. $form['form-4'] = array(
    217.     'fields' => array(
    218.         'name' => array(
    219.             'title' => 'Имя',
    220.             'validate' => array(
    221.                 'preg' => '%[A-Z-a-zА-Яа-я\s]%',
    222.                 'minlength' => '3',
    223.                 'maxlength' => '35',
    224.             ),
    225.             'messages' => array(
    226.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    227.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    228.                 'maxlength' => 'Максимальная длинна поля [ %1$s ] превышает допустимую - %2$s',
    229.             )
    230.         ),
    231.         'tell' => array(
    232.             'title' => 'Телефон',
    233.             'validate' => array(
    234.                 'preg' => "/^((8|\+)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{5,10}$/",
    235.                 'minlength' => '5',
    236.             ),
    237.             'messages' => array(
    238.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    239.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    240.             )
    241.         ),
    242.         'e-mail' => array(
    243.             'title' => 'E-mail',
    244.             'validate' => array(
    245.                 'preg' => '%@%is',
    246.                 'minlength' => '5',
    247.             ),
    248.             'messages' => array(
    249.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    250.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    251.             )
    252.         ),
    253.     ),
    254.     'cfg' => array(
    255.         'charset' => 'utf-8',
    256.         'subject' => 'Заказ установки потолка',
    257.         'title' => 'Заказ установки потолка во всей квартире',
    258.         'ajax' => true,
    259.         'validate' => true,
    260.         'from_email' => 'support@ipro2.ru',
    261.         'from_name' => 'VideoNablyudenie',
    262.         'to_email' => 'support@ipro2.ru',
    263.         'to_name' => 'VideoNablyudenie',
    264.         'geoip' => true,
    265.         'referer' => true,
    266.         'type' => 'html',
    267.         'tpl' => true,
    268.         'antispam' => 'email77',
    269.         'antispamjs' => 'address77',
    270.         'okay' => '<div class="ab">ЗАЯВКА НА УСТАНОВКУ ПОТОЛКА ОТПРАВЛЕНА!</div><div class="os">Наш специалист свяжется с вами в ближайшее время.</div>',
    271.         'fuck' => 'Сообщение отправлено - ERROR',
    272.         'spam' => 'Cпам робот',
    273.         'notify' => 'color-modal',
    274.         'usepresuf' => false
    275.     )
    276. );
    277. $form['form-5'] = array(
    278.     'fields' => array(
    279.         'text' => array(
    280.             'title' => 'Сообщение',
    281.         ),
    282.         'text2' => array(
    283.             'title' => 'Сообщение',
    284.         ),
    285.         'text3' => array(
    286.             'title' => 'Сообщение',
    287.         ),
    288.         'select' => array(
    289.             'title' => 'Select',
    290.         ),
    291.         'name' => array(
    292.             'title' => 'Имя',
    293.             'validate' => array(
    294.                 'preg' => '%[A-Z-a-zА-Яа-я\s]%',
    295.                 'minlength' => '3',
    296.                 'maxlength' => '35',
    297.             ),
    298.             'messages' => array(
    299.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    300.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    301.                 'maxlength' => 'Максимальная длинна поля [ %1$s ] превышает допустимую - %2$s',
    302.             )
    303.         ),
    304.         'tell' => array(
    305.             'title' => 'Телефон',
    306.             'validate' => array(
    307.                 'preg' => "/^((8|\+)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{5,10}$/",
    308.                 'minlength' => '5',
    309.             ),
    310.             'messages' => array(
    311.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    312.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    313.             )
    314.         ),
    315.         'e-mail' => array(
    316.             'title' => 'E-mail',
    317.             'validate' => array(
    318.                 'preg' => '%@%is',
    319.                 'minlength' => '5',
    320.             ),
    321.             'messages' => array(
    322.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    323.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    324.             )
    325.         ),
    326.     ),
    327.     'cfg' => array(
    328.         'charset' => 'utf-8',
    329.         'subject' => 'Заказ расчета стоимости',
    330.         'title' => 'Заказ расчета стоимости',
    331.         'ajax' => true,
    332.         'validate' => true,
    333.         'from_email' => 'support@ipro2.ru',
    334.         'from_name' => 'VideoNablyudenie',
    335.         'to_email' => 'support@ipro2.ru',
    336.         'to_name' => 'VideoNablyudenie',
    337.         'geoip' => true,
    338.         'referer' => true,
    339.         'type' => 'html',
    340.         'tpl' => true,
    341.         'antispam' => 'email77',
    342.         'antispamjs' => 'address77',
    343.         'okay' => '<div class="ab">ЗАЯВКА НА РАСЧЕТ СТОИМОСТИ ОТПРАВЛЕНА!</div><div class="os">Вам на почту будет отправлен<br>примерный расчет стоимости вашего потолка.</div>',
    344.         'fuck' => 'Сообщение отправлено - ERROR',
    345.         'spam' => 'Cпам робот',
    346.         'notify' => 'color-modal',
    347.         'usepresuf' => false
    348.     )
    349. );
    350. $form['form-6'] = array(
    351.     'fields' => array(
    352.         'name' => array(
    353.             'title' => 'Имя',
    354.             'validate' => array(
    355.                 'preg' => '%[A-Z-a-zА-Яа-я\s]%',
    356.                 'minlength' => '3',
    357.                 'maxlength' => '35',
    358.             ),
    359.             'messages' => array(
    360.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    361.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    362.                 'maxlength' => 'Максимальная длинна поля [ %1$s ] превышает допустимую - %2$s',
    363.             )
    364.         ),
    365.         'tell' => array(
    366.             'title' => 'Телефон',
    367.             'validate' => array(
    368.                 'preg' => "/^((8|\+)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{5,10}$/",
    369.                 'minlength' => '5',
    370.             ),
    371.             'messages' => array(
    372.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    373.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    374.             )
    375.         ),
    376.         'e-mail' => array(
    377.             'title' => 'E-mail',
    378.             'validate' => array(
    379.                 'preg' => '%@%is',
    380.                 'minlength' => '5',
    381.             ),
    382.             'messages' => array(
    383.                 'preg' => 'Поле [ %1$s ] возможно содержит ошибку',
    384.                 'minlength' => 'Минимальная длинна поля [ %1$s ] меньше допустимой - %2$s',
    385.             )
    386.         ),
    387.     ),
    388.     'cfg' => array(
    389.         'charset' => 'utf-8',
    390.         'subject' => 'Заказ установки потолка',
    391.         'title' => 'Заказ установки потолка по акции',
    392.         'ajax' => true,
    393.         'validate' => true,
    394.         'from_email' => 'support@ipro2.ru',
    395.         'from_name' => 'VideoNablyudenie',
    396.         'to_email' => 'support@ipro2.ru',
    397.         'to_name' => 'VideoNablyudenie',
    398.         'geoip' => true,
    399.         'referer' => true,
    400.         'type' => 'html',
    401.         'tpl' => true,
    402.         'antispam' => 'email77',
    403.         'antispamjs' => 'address77',
    404.         'okay' => '<div class="ab">ЗАЯВКА НА УСТАНОВКУ ПОТОЛКА ОТПРАВЛЕНА!</div><div class="os">Наш специалист свяжется с вами в ближайшее время.</div>',
    405.         'fuck' => 'Сообщение отправлено - ERROR',
    406.         'spam' => 'Cпам робот',
    407.         'notify' => 'color-modal',
    408.         'usepresuf' => false
    409.     )
    410. );
    411.  
    412.  
    413. /*--------------------------------------------------------------------------------------------------------------------------*/
    414. /*--------------------------------------------------------------------------------------------------------------------------*/
    415. /*--------------------------------------------------------------------------------------------------------------------------*/
    416. /*--------------------------------------------------------------------------------------------------------------------------*/
    417.  
    418. /*НИЖЕ НИЧЕГО НЕ МЕНЯТЬ БЕЗ ОПРЕДЕЛЕННЫХ НАВЫКОВ И ЗНАНИЙ!!!!!!*/
    419.  
    420. /*--------------------------------------------------------------------------------------------------------------------------*/
    421. /*--------------------------------------------------------------------------------------------------------------------------*/
    422. /*--------------------------------------------------------------------------------------------------------------------------*/
    423. /*--------------------------------------------------------------------------------------------------------------------------*/
    424.  
    425.  
    426. if($act == 'cfg') {
    427.    $jsonBox['configs'] = ExportConfigs($form);
    428.     die(json_encode($jsonBox));
    429. }
    430.  
    431. function ExportConfigs($form) {
    432.     $need = array('antispam','antispamjs','notify');
    433.     $conf = array();
    434.      foreach($form as $name => $data) {
    435.          foreach($data['cfg'] as $k => $cfg) {
    436.            if(in_array($k, $need)) {
    437.                $conf[$name]['cfg'][$k] = $cfg;
    438.            }
    439.          }
    440.      }
    441.  
    442.     return $conf;
    443. }
    444.  
    445.  
    446. if(isset($form[$act])) {
    447.  
    448.    $form = $form[$act];
    449.    $getdata = array();
    450.    $sb = array(); // subject и body
    451.  
    452.  
    453.       foreach($form['fields'] as $name => $field) {
    454.  
    455.             $title = (isset($field['title'])) ? $field['title'] : $name;
    456.             $getdata[$name]['title'] = $title;
    457.             $rawdata = isset($_POST[$name]) ? trim($_POST[$name]) : '';
    458.  
    459.               if(isset($field['validate'])) {              
    460.  
    461.                   $def = 'Поле с именем [ '.$name.' ] содержит ошибку.';
    462.                   // -0-
    463.                   if(isset($field['validate']['required']) &&
    464.                       empty($rawdata)) {
    465.                       $error[$name] = isset($field['messages']['required']) ? sprintf($field['messages']['required'], $title) :
    466.                                      (isset($messages['validator']['required']) ? sprintf($messages['validator']['required'], $title) : $def);
    467.                   }
    468.                   // -1-
    469.                   if(isset($field['validate']['minlength']) &&
    470.                       mb_strlen($rawdata) < $field['validate']['minlength']) {
    471.                       $error[$name] = isset($field['messages']['minlength']) ? sprintf($field['messages']['minlength'], $title, $field['validate']['minlength']) : $def;
    472.                   }
    473.                   // -2-
    474.                   if(isset($field['validate']['maxlength']) &&
    475.                     mb_strlen($rawdata) > $field['validate']['maxlength']) {
    476.                         $error[$name] = isset($field['messages']['maxlength']) ? sprintf($field['messages']['maxlength'], $title, $field['validate']['maxlength']) : $def;
    477.                   }
    478.                   // -3-
    479.                   if(isset($field['validate']['preg']) && mb_strlen($rawdata) > 0 &&
    480.                       !preg_match($field['validate']['preg'], $rawdata)) {
    481.                       $error[$name] = isset($field['messages']['preg']) ? sprintf($field['messages']['preg'], $title, $field['validate']['preg']) : $def;
    482.                   }
    483.                   // -4-
    484.                   if(isset($field['validate']['substr']) &&
    485.                       mb_strlen($rawdata) > $field['validate']['substr']) {
    486.                       $rawdata = mb_substr($rawdata, 0, $field['validate']['substr']);
    487.                   }
    488.  
    489.                $outdata = htmlspecialchars($rawdata);
    490.  
    491.                $getdata[$name]['value'] = $outdata;
    492.  
    493.               }
    494.                else {
    495.                  $getdata[$name]['value'] = htmlspecialchars($rawdata);
    496.               }
    497.  
    498.                if(empty($getdata[$name]['value'])) {
    499.                      unset($getdata[$name]);
    500.                   }
    501.  
    502.  
    503.       } //foreach end
    504.  
    505.     $getdata['utm']['title'] = 'Сайт-источник';
    506.     $getdata['utm']['value'] = $utm;
    507.     $getdata['term']['title'] = 'Ключевая фраза';
    508.     $getdata['term']['value'] = $term;
    509. //eugeny edit    
    510.     $getdata['model']['title'] = 'Модель';
    511.     $getdata['model']['value'] = $model;
    512. //\eugeny edit
    513.     if(isset($form['cfg']['antispam']) && isset($_POST[$form['cfg']['antispam']])) {
    514.         if(!empty($_POST[$form['cfg']['antispam']])) {
    515.          $error[] = $form['cfg']['spam'];
    516.         }
    517.     }
    518.      if(isset($form['cfg']['antispamjs']) && isset($_POST[$form['cfg']['antispamjs']])) {
    519.          if(!empty($_POST[$form['cfg']['antispamjs']])) {
    520.              $error[] = $form['cfg']['spam'];
    521.          }
    522.      }
    523.  
    524.  
    525.     if(count($error) == 0) {
    526.  
    527.       if(function_exists("mb_internal_encoding")) mb_internal_encoding($form['cfg']['charset']);
    528.       $get_fromName = (isset($form['fields'][$form['cfg']['from_name']]) && isset($getdata[$form['cfg']['from_name']]['value']) && mb_strlen($getdata[$form['cfg']['from_name']]['value']) > 2) ? $getdata[$form['cfg']['from_name']]['value'] : ((mb_strlen($form['cfg']['from_name']) > 2 && !isset($_POST[$form['cfg']['from_name']])) ? $form['cfg']['from_name'] : 'Anonymous');
    529.       $get_fromEmail = (isset($form['fields'][$form['cfg']['from_email']]) && isset($getdata[$form['cfg']['from_email']]['value']) && mb_strpos('@', $getdata[$form['cfg']['from_email']]['value']) === false) ? $getdata[$form['cfg']['from_email']]['value'] : ((mb_strpos('@', $form['cfg']['from_email']) !== false) ? $form['cfg']['from_email'] : 'no-reply@'.$host);
    530.  
    531.       $fromName = (function_exists("mb_encode_mimeheader")) ? mb_encode_mimeheader($get_fromName, $form['cfg']['charset'], "Q") : $get_fromName;
    532.       $sb['subject'] = (function_exists("mb_encode_mimeheader")) ? mb_encode_mimeheader($form['cfg']['subject'], $form['cfg']['charset'], "Q") : $form['cfg']['subject'];
    533.       
    534.       $toName = trim($form['cfg']['to_name'], " ,");
    535.       $toEmail = trim($form['cfg']['to_email'], " , ");
    536.  
    537.       if(strpos($toName, ",") !== false) { 
    538.          $exp_toName = explode(",", $toName);   
    539.          $c = count($exp_toName);
    540.           for($i=0; $i<$c; $i++) {
    541.            $exp_toName[$i] = (function_exists("mb_encode_mimeheader")) ? mb_encode_mimeheader(trim($exp_toName[$i]), $form['cfg']['charset'], "Q") : trim($exp_toName[$i]);
    542.           } 
    543.        } 
    544.         else {
    545.           $toName = (function_exists("mb_encode_mimeheader")) ? mb_encode_mimeheader($toName, $form['cfg']['charset'], "Q") : $toName;
    546.        }
    547.        
    548.       if(strpos($toEmail, ",") !== false) { 
    549.          $exp_toEmail = explode(",", $toEmail);
    550.       }         
    551.       
    552.       $To = 'bnv@oxpana.tv';
    553.       
    554.        if(isset($exp_toEmail)) {
    555.         $c = count($exp_toEmail);
    556.           for($i=0; $i < $c; $i++) { 
    557.                $To .= ((isset($exp_toName) && isset($exp_toName[$i])) ? $exp_toName[$i] : $toName) . " <".trim($exp_toEmail[$i]).">";
    558.                if($i < ($c-1)) $To .= ", ";
    559.            }
    560.        } 
    561.         else {
    562.            $To = ((isset($exp_toName) && isset($exp_toName[0])) ? $exp_toName[0] : $toName)." <".$toEmail.">";
    563.        }
    564.  
    565.  
    566.       $headers = "Return-Path: <".$get_fromEmail.">\r\n";
    567.       $headers .= "From: ".$fromName." <".$get_fromEmail.">\r\n";
    568.       $headers .= "X-Mailer: Feedback, v0.3 (http://artuelle.com)\r\n";
    569.       $headers .= "X-Priority: 3\r\n";
    570.       $headers .= "Reply-To: ".$fromName." <".$get_fromEmail.">\r\n";
    571.       //$headers .= "To: ".$To."\r\n";
    572.       $headers .= "MIME-Version: 1.0\r\n";
    573.       $headers .= "Content-Type: text/" . $form['cfg']['type'] . "; charset=\"" . $form['cfg']['charset'] . "\"\r\n";
    574.       $headers .= "Content-Transfer-Encoding: 8bit\r\n";
    575.  
    576.       $sb['body'] = "";
    577.       // парсим шаблон
    578.       if($form['cfg']['tpl']) {
    579.        $out = tpl(array('name' => $act, 'getdata' => $getdata, 'cfg' => $form['cfg']));
    580.        if(is_string($out)) {
    581.           $sb['body'] = $out;
    582.        }
    583.      }
    584.       // или отдаем голый текст
    585.         if(mb_strlen(trim($sb['body'])) < 10) {
    586.           if(isset($form['cfg']['title']))
    587.               $sb['body'] .= $form['cfg']['title']."\r\n\r\n";
    588.           foreach($getdata as $name => $data) {
    589.               $sb['body'] .= $data['title'].": ".$data['value']."\r\n";
    590.           }
    591.           if($form['cfg']['referer'])
    592.               $sb['body'] .= "\r\n\r\n\r\n\r\n".$ref;
    593.       }
    594.       // если есть что добавить
    595.        if(isset($form['cfg']['adds']) &&
    596.           is_array($form['cfg']['adds'])) {
    597.           $sb = adds($sb);
    598.        }
    599.  
    600.     //$sb['body'].="\nСайт-источник: $utm\nКлючевая фраза: $term\n";
    601.  
    602.       //отправка письма
    603.     //mail('literator73@yandex.ru, 9229236@inbox.ru', $sb['subject'], $sb['body'], $headers);
    604.  
    605.  
    606.     $mail = mail($to, $sb['subject'], $sb['body'], $headers);
    607.     $sb['body'] .= "<p>Имя: {$_REQUEST["name"]}</p>";
    608.     $sb['body'] .= "<p>Телефон: {$_REQUEST["tell"]}</p>";
    609.     $sb['body'] .= "<p>platform: {$_COOKIE["platform"]}</p>";
    610.     $sb['body'] .= "<p>num: {$_COOKIE["num"]}</p>";
    611.     $sb['body'] .= "<p>ip: {$_COOKIE["ip"]}</p>";
    612.     $sb['body'] .= "<p>conversion: заявка</p>";
    613.         
    614.       if($mail) {
    615.           $jsonBox['ok'] = 1;
    616.           $info[] = $form['cfg']['okay'];
    617.  
    618.          //setcookie("limit", "1", time() + $form['cfg']['limit']);
    619.  
    620.       }
    621.        else {
    622.            $info[] = $form['cfg']['fuck'];
    623.        }
    624.  
    625.     }
    626.  
    627.  } else {
    628.     $error[] = 'Нет настроек формы с именем #'.$act;
    629.  }
    630.     
    631.     if(count($error) > 0) {
    632.         $jsonBox['errors'] = $error;
    633.     }
    634.     if(count($info) > 0) {
    635.         $jsonBox['infos'] = $info;
    636.     }
    637.  
    638.     die(json_encode($jsonBox)); //мертвые с косами
    639.  
    640. /* добавляет любые доп данные из вне в нужное место
    641.  * (например в заголовок письма необходимо дабавить Ник юзера или Номер заказа )
    642.  *
    643.  *  */
    644.  
    645. function adds($vars) {
    646.     global $form;
    647.     $adds = $form['cfg']['adds'];
    648.     foreach($adds as $key => $opts) {
    649.         if(is_string($key)) {
    650.             $one = array();
    651.             $two = array();
    652.             foreach($opts as $i => $val) {
    653.                 if(isset($_POST[$val])) {
    654.                   $one[] = '%%'.$val.'%%';
    655.                   $two[] = $_POST[$val];
    656.                 }
    657.             }
    658.            $vars[$key] = str_replace($one, $two, $vars[$key]);
    659.         }
    660.     }
    661.        return $vars;
    662. }
    663. /*
    664.  * парсер шаблона
    665.  */
    666.  function tpl($vars) {
    667.     $tpl = 'tpl/'.$vars['name'].'.tpl';
    668.     if(file_exists($tpl)) {
    669.      $template = file_get_contents($tpl);
    670.         foreach($vars['getdata'] as $name => $data) {
    671.             $template = str_replace(array("%%".$name.".title%%", "%%".$name.".value%%"), array($data['title'], $data['value']), $template);
    672.         }
    673.         return $template;
    674.     }
    675.      else {
    676.       return false;
    677.     }
    678.  } 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    mail($to
    В $to должен быть email
     
  17. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Я то подумал со спамом покончено((