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

Почему не передаются данные из формы?

Здравствуйте.

Письма с формы не приходят на почту, хотя сообщение 200 ОК я получаю.
В заголовке ответа у меня Content-Length: 0, может просто данные не передаются?

Форма:
<form action="post.php" method="POST" class="form" id="form" >
            <h5>Форма обратной связи</h5>
            <div class="form-group">
              <div class="row">
                <div class="col-lg-12">
                  <label for="name">Фамилия Имя Отчество:</label>
                  <input class="form-control form-control-lg"  type="text" name="name" id="name" placeholder="Иванов Иван Иванович" required>
                </div>
                <!-- .col-lg-12 -->
              </div>
              <!-- .row -->
              <div class="row">
                <div class="col-lg-12">
                  <label for="email">Адрес электронной почты:</label>
                  <input class="form-control form-control-lg" type="email" name="email" id="email" placeholder="mail@example.ru" required>
                </div>
                <!-- /.col-lg-12 -->
              </div>
              <!-- /.row -->
              <div class="row">
                <div class="col-lg-12">
                  <label for="text">Текст сообщения:</label>
                  <textarea class="form-control" name="text" id="text" resize="none" cols="3" rows="5" placeholder="Введите текст сообщения" required></textarea> <!-- /#text --></div>
                <!-- /.col-lg-12 -->
              </div>
              <!-- /.row -->
              <div class="row">
                <div class="col-lg-12">
                  <input type="submit" class="btn btn-primary" value="Отправить сообщение"></div>
              </div>
            </div>
            <!-- .form-group -->
          </form>
          <!-- /.form -->


AJAX:
$("#form").submit(function (e) { // Устанавливаем событие отправки для формы с id=form
           e.preventDefault();
            var form_data = $(this).serialize(); // Собираем все данные из формы
            $.ajax({
                type: "POST", // Метод отправки
                url: "post.php", // Путь до php файла отправителя
                contentType: false,
                data: form_data,
                success: function () {
                    // Код в этом блоке выполняется при успешной отправке сообщения
                    alert("Ваше сообщение отправлено!");
                }
            });
        });


PHP:
$to = "Адрес емайла";
  $subject = 'Письмо с сайта'; //Заголовок сообщения
  $message = '
          <html>
              <head>
                  <title>'.$subject.'</title>
              </head>
              <body>
                  <p>Имя: '.$_POST['name'].'</p>
                  <p>Email: '.$_POST['email'].'</p>
                  <p>Сообщение: '.$_POST['text'].'</p>                                   
              </body>
          </html>'; //Текст сообщения
  $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
  $headers .= "From: Отправитель <from@example.com>\r\n"; //Наименование и почта отправителя
  mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail


Может у меня уже глаз замылился или я где-то что-то упускаю, подскажите, пожалуйста, в чем проблема?
  • Вопрос задан
  • 270 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Sanchez9891 Автор вопроса
Всё оказалось проще некуда.
Надо убрать метод у формы, так как он есть в запросе AJAX. После этого письма с данными из формы начали приходить.
Эмиль &#128293; спасибо большое, твоё способ помог, но при этом данные не передавались.
5eafb5cd74fa0347211330.jpeg
поменял обратно, стало работать как по маслу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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