Задать вопрос
vagono
@vagono

Почему письма с формы обратной связи приходят пустыми?

Доброго времени суток!

Прошу помощи - на готовом шаблоне присутствует форма обратной связи.
Письма с нее приходят, но абсолютно пустые.
Если можно, доступным языком... т.к. я только учусь.

PHP
<?php
$name       = @trim(stripslashes($_POST['name'])); 
$from       = @trim(stripslashes($_POST['email'])); 
$message    = @trim(stripslashes($_POST['message'])); 
$subject    = @trim(stripslashes($_POST['subject'])); 
$to   		= 'daniel.k07@yandex.ru';//replace with your email

$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();

mail($to, $subject, $message, $headers);

die;


HTML
<div class="col-md-4 col-sm-12">
                    <div class="contact-form bottom">
                        <h2>Send a message</h2>
                        <form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">
                            <div class="form-group">
                                <input type="text" name="name" class="form-control" required="required" placeholder="Name">
                            </div>
                            <div class="form-group">
                                <input type="email" name="email" class="form-control" required="required" placeholder="Email Id">
                            </div>
                            <div class="form-group">
                                <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Your text here"></textarea>
                            </div>                        
                            <div class="form-group">
                                <input type="submit" name="submit" class="btn btn-submit" value="Submit">
                            </div>
                        </form>
                    </div>
                </div>


5cc0bdf69b8c6289019090.png

UPD: один человек помог, наверно слегка. вот его ответ, может поможет чем-то
spoiler
1. у вас с сайта не передаются переменные в скрипт отправки письма
2. сам скрипт отправки письма с ошибкой, вот:
Warning: mail(): Found numeric header (0) in /home/u220928358/domains/doctorwin.ru/public_html/test-2/sendemail.php on line 16

Warning: mail(): Found numeric header (1) in /home/u220928358/domains/doctorwin.ru/public_html/test-2/sendemail.php on line 16

Warning: mail(): Found numeric header (2) in /home/u220928358/domains/doctorwin.ru/public_html/test-2/sendemail.php on line 16

Warning: mail(): Found numeric header (3) in /home/u220928358/domains/doctorwin.ru/public_html/test-2/sendemail.php on line 16

Warning: mail(): Found numeric header (4) in /home/u220928358/domains/doctorwin.ru/public_html/test-2/sendemail.php on line 16

Warning: mail(): Found numeric header (5) in /home/u220928358/domains/doctorwin.ru/public_html/test-2/sendemail.php on line 16

он не формирует заголовки
  • Вопрос задан
  • 623 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
AnatolTh
@AnatolTh
Full Stack Developer
<?php
$name            = trim(stripslashes($_POST['name'])); 
$from            = trim(stripslashes($_POST['email'])); 
$form_message    = trim(stripslashes($_POST['message'])); 
$subject         = "Тема письма"; 
$to   		 = 'daniel.k07@yandex.ru';//replace with your email

$message = "Имя: $name <br> Сообщение: $form_message";

$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();

mail($to, $subject, $message, implode("\r\n", $headers));

die;


UPD (main.js)
// Contact form
  var form = $('#main-contact-form');
  form.submit(function(event){
    event.preventDefault();
    var form_status = $('<div class="form_status"></div>');
    $.ajax({
      url: $(this).attr('action'),
      dataType: 'json',
      method: "POST",
            data: {
            message : form.children('input[name="message"]').val(),
            name: form.children('input[name="name"]').val(),
            email: form.children('input[name="email"]').val()
            },
      beforeSend: function(){
        form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
      }
    }).done(function(data){
      form_status.html('<p class="text-success">Thank you for contact us. As early as possible  we will contact you</p>').delay(3000).fadeOut();
    });
  });
Ответ написан
lamer350
@lamer350
กำลังสูงสุด
У вас нет $_POST['subject'], создайте поле с темой в форме либо в php для $subject задайте тему вручную.
Ответ написан
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
Вроде уже объясняли, что большинство почтовиков default режут письма с формами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы