За последние 24 часа нас посетили 18690 программистов и 1708 роботов. Сейчас ищут 883 программиста ...

Скрип для отправки данных формы на мейл.

Тема в разделе "PHP для новичков", создана пользователем captainluzik, 15 янв 2016.

  1. captainluzik

    captainluzik Новичок

    С нами с:
    15 янв 2016
    Сообщения:
    7
    Симпатии:
    0
    Рад приветствовать всех новичков а так же рыцарей-джедаев php!)

    Я начинающий(или не очень) верстальщик, и столкнулся с самой явной проблемой - написания скрипта на языке php.
    Так вот, мне нужна ваша помощь:
    Вот код самой формы, со стилями,
    Код (PHP):
    1. <form class="lv-order-form lv-order-form-css" data-form-number="1" id="lv-form" action="action.php" method="post" data-validation-by-alert="1" 
    2.             onsubmit="if(this.name.value==''){alert('Введите Ваше имя!');return false}if(this.phone.value==''){alert('Введите Ваш номер телефона!');return false}return true;"
    3.             >
    4.                <div class="lv-move" data-position="before" data-form="1" data-field="fio">
    5.                   <h3 class="asdasdsa">Оставить заявку</h3>
    6.                </div>
    7.                <div class="lv-row lv-row-fio lv-row-input " data-name="fio" data-required="">
    8.                   <div class="lv-field">
    9.                      <input data-label="ФИО" data-required="" data-form-id="" id="lv-form-fio" class="lv-input-fio -metrika-nokeys" maxlength="255" name="name" type="text" placeholder="ФИО *" required>
    10.                   </div>
    11.                </div>
    12.                <div class="lv-row lv-row-phone lv-row-input " data-name="phone" data-required="1">
    13.                   <div class="lv-field"><input data-label="Телефон" data-required="1" data-form-id="" id="lv-form-phone" class="lv-input-phone -metrika-nokeys" maxlength="25" name="phone" type="text" placeholder="Телефон *" required></div>
    14.                </div>
    15.                
    16.                <div class="lv-row lv-row-additional1 lv-row-input " data-name="additional1" data-required="">
    17.    </div>
    18.          <input id="com" name="comment" type="hidden" value=""/>
    19.                <div class="lv-form-submit"><input class="lv-order-button -metrika-nokeys" type="submit" name="yt0" value="Заказать"></div>
    20.             </form>
    21.  
    22.  
    но мне нужен файлик action.php для отправки формы на мейл. Помогите!
    Думаю это не составит труда.
    Да пребудет с вами Сила!)

    Добавлено спустя 1 минуту 55 секунд:
    Учитывая опечатку в заголовке, мне таки это почти со "скрипом" удалось. Но почта так и не долетела...(

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Это раздел для новичков. Тут подсказывают, но не делают вместо вас. Покажите свои попытки отправить письмо, может кто найдёт ошибку или просто подскажет.
     
  3. captainluzik

    captainluzik Новичок

    С нами с:
    15 янв 2016
    Сообщения:
    7
    Симпатии:
    0
    Вот моя жалкая попытка.)
    Код (PHP):
    1. <?php
    2.     $to = 'poker.luzik@gmail.com';
    3.  
    4.     $from = "=?UTF-8?b?" . $_POST['name'] . "?=";
    5.     $subject = "=?UTF-8?b?" . $_POST['phone'] . "?=";
    6.     
    7.     $mail_body = "Поступил новый ответ от формы обратной связи.\r\nАвтор оставил такие данные:\r\n";
    8.     
    9.     //Формируем текст сообщения
    10.     
    11.     $header = "MIME-Version: 1.0\n";
    12.     $header .= "Content-Type: text/plain; charset=UTF-8\n";
    13.  
    14.  
    15.     //Отправка сообщения
    16.     if(mail($to, $subject, $mail_body, $header)){
    17.         
    18.         $message = '<div class="error">Ваше сообщение успешно отправлено!</div>';
    19.         
    20.         //Очищаем форму обратной связи
    21.         $validator->reset_postdata();
    22.     }
    23.     else{
    24.         
    25.         $message = '<div class="error">Ваше сообщение не отправлено!</div>';
    26.     }
    27.  
    28. ?>
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  4. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    откуда вы взяли эту строчку, вообще не понимаю
    Код (PHP):
    1. $validator->reset_postdata(); 
    Но вообще оно криво, но работает. Письма вообще не доходят?
     
  5. captainluzik

    captainluzik Новичок

    С нами с:
    15 янв 2016
    Сообщения:
    7
    Симпатии:
    0
    Именно. Если, можешь, помоги. Покажи ошибки для исправления.
    Мне не нужно чего-то вычурного - главное данные на мейл)
    Спасибо.
     
  6. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Да скрипт-то работает. Вопрос в том, разрешена ли функция mail() на сервере. И есть ли почтовая служба вообще. Попробуйте уточнить это у своей техподдержки

    Добавлено спустя 3 минуты 21 секунду:
    А ещё есть вариант, что письма отправляются, но их не пропускает фильтр получателя.
    Код (PHP):
    1. <?php
    2.    $to = 'poker.luzik@gmail.com';
    3.  
    4.    $from = "=?UTF-8?b?" . $_POST['name'] . "?=";
    5.    $subject = "=?UTF-8?b?" . $_POST['phone'] . "?=";
    6.    
    7.    $mail_body = "Поступил новый ответ от формы обратной связи.\r\nАвтор оставил такие данные:\r\n";
    8.    
    9.    //Формируем текст сообщения
    10.    
    11.    $header = "MIME-Version: 1.0\n";
    12.    $header .= "Content-Type: text/plain; charset=UTF-8\n";
    13.  
    14.  
    15.    //Отправка сообщения
    16.    if(mail($to, $subject, $mail_body, $header)){
    17.       
    18.       echo '<div class="error">Ваше сообщение успешно отправлено!</div>';
    19.    }
    20.    else{
    21.       
    22.       echo '<div class="error">Ваше сообщение не отправлено!</div>';
    23.    }
    24.  
    25. ?>
    что так напишет?
     
  7. captainluzik

    captainluzik Новичок

    С нами с:
    15 янв 2016
    Сообщения:
    7
    Симпатии:
    0
    Я это делаю на локальном сервере. В этом небось проблема? Использую XAMPP.
     
  8. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Тогда да, проблема в этом. Стандартно там стоит заглушка. в XAMPP надо настроить почтовый сервер. Там он называется, вроде бы, Mercury. Погуглите на эту тему.
     
  9. captainluzik

    captainluzik Новичок

    С нами с:
    15 янв 2016
    Сообщения:
    7
    Симпатии:
    0
    Сейчас вот заглушку настроил. Буду проверять.
    Отпишу)

    Добавлено спустя 12 минут 27 секунд:
    з.ы. я только что убунту сломал)хах)
    При настройке заглушки присвоил себе всю системную папку etc/ и терь не вернуть) Ну это уже другая история)
     
  10. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Что ж вы не написали, что Linux у вас сразу. Вам бы подсказали. Там же есть родные почтовые сервера, странно, что в комлекте для Linux у XAMPP-а нет настроек хотя бы на sendmail. http://habrahabr.ru/post/136735/ - я недавно по этой статье настраивал
     
  11. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    captainluzik используй docker-compose для эксперементов