отправка формы на почту c помощью ajax

181
24 октября 2019, 15:40

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

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
	<meta charset="UTF-8"> 
	<title></title> 
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
</head> 
<body> 
 
<form id="form1" method="POST"> 
  <div class="form-row"> 
    <div class="col"> 
    <input type="hidden" name="formData" value="Заголовок формы"> 
      <input type="text" name="name" class="name form-control" placeholder="Представьтесь, пожалуйста"> 
    </div> 
  </div> 
    <div class="form-group"> 
        <label for="recipient-mail" class="col-form-label">Ваш email:</label> 
        <input type="text" name="email" id="recipient-mail" class="email form-control" placeholder="example@mail.ru"> 
    </div> 
    <div class="form-group"> 
        <label for="recipient-phone" class="col-form-label">Ваш телефон:</label> 
        <input type="text" name="phone" id="recipient-phone" class="phone form-control" placeholder="+7"> 
    </div> 
    <div class="form-group"> 
        <label for="message-text" class="col-form-label">Сообщение:</label> 
        <textarea name="message" id="message-text" class="message form-control" placeholder=""></textarea> 
    </div> 
  <button type="submit" class="btn btn-primary">Заказать</button> 
</form> 
 
<form id="form2" method="POST"> 
  <div class="form-row"> 
    <div class="col"> 
    <input type="hidden" name="formData" value="Заголовок формы"> 
      <input type="text" name="name" class="name form-control" placeholder="Представьтесь, пожалуйста"> 
    </div> 
  </div> 
    <div class="form-group"> 
        <label for="recipient-mail" class="col-form-label">Ваш email:</label> 
        <input type="text" name="email" id="recipient-mail" class="email form-control" placeholder="example@mail.ru"> 
    </div> 
    <div class="form-group"> 
        <label for="recipient-phone" class="col-form-label">Ваш телефон:</label> 
        <input type="text" name="phone" id="recipient-phone" class="phone form-control" placeholder="+7"> 
    </div> 
    <div class="form-group"> 
        <label for="message-text" class="col-form-label">Сообщение:</label> 
        <textarea name="message" id="message-text" class="message form-control" placeholder=""></textarea> 
    </div> 
  <button type="submit" class="btn btn-primary">Заказать</button> 
</form> 
 
<form id="form3" method="POST"> 
  <div class="form-row"> 
    <div class="col"> 
    <input type="hidden" name="formData" value="Заголовок формы"> 
      <input type="text" name="name" class="name form-control" placeholder="Представьтесь, пожалуйста"> 
    </div> 
  </div> 
    <div class="form-group"> 
        <label for="recipient-mail" class="col-form-label">Ваш email:</label> 
        <input type="text" name="email" id="recipient-mail" class="email form-control" placeholder="example@mail.ru"> 
    </div> 
    <div class="form-group"> 
        <label for="recipient-phone" class="col-form-label">Ваш телефон:</label> 
        <input type="text" name="phone" id="recipient-phone" class="phone form-control" placeholder="+7"> 
    </div> 
    <div class="form-group"> 
        <label for="message-text" class="col-form-label">Сообщение:</label> 
        <textarea name="message" id="message-text" class="message form-control" placeholder=""></textarea> 
    </div> 
  <button type="submit" class="btn btn-primary">Заказать</button> 
</form> 
<script> 
    $(document).ready(function () { 
        $('form').submit(function () { 
            var formID = $(this).attr('id'); // Получение ID формы 
            var formNm = $('#' + formID); 
            $.ajax({ 
                type: 'POST', 
                url: 'form.php', // Обработчик формы отправки 
                data: formNm.serialize(), 
                success: function (data) { 
                    // Вывод текста результата отправки в текущей форме 
                    $(formNm).html(data); 
                } 
            }); 
            return false; 
        }); 
    }); 
</script> 
</body> 
</html>

Код PHP:

    <?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}
    if (isset($_POST['email'])) {$email = $_POST['email'];}
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['message'])) {$message = $_POST['message'];}
    $to = "sayapov.ainur@mail.ru"; /*Укажите ваш адрес электронной почты*/
    $headers = "Content-type: text/plain; charset = utf-8";
    $subject = "$formData";
    $message = "$formData\n\nОткуда: $email \n\nОтправитель: $name \n\nТелефон: $phone \n\nСообщение: $message";
    $send = mail ($to, $subject, $message, $headers);
    if ($send == 'true')
    {
    echo "<center>Спасибо за отправку вашего сообщения! Наши специалисты свяжутся с вами в течение часа.</center>";
    }
    else 
    {
    echo "<center><b>Ошибка. Сообщение не отправлено! Проверьте правильность введенных данных</b></center>";
    }
} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}
?>
Answer 1

Всем спасибо, я не подключил SMTP.

READ ALSO
PHP Поиск подстроки в ненормальной строке

PHP Поиск подстроки в ненормальной строке

Нужно найти название игры в XML файлах от магазиновНекоторые пишут название так "Metro Exodus", некоторые так: "Metro: Exodus", некоторые так: "Metro: Exodu's"

126
readbean php как правильно сделать запрос

readbean php как правильно сделать запрос

Всем привет на данном этапе собираюсь с mysql мигрировать на orm readbean php вот застрял в начале собственно! Соединения с бд есть далее есть форма...

162
Foreign key is null php laravel

Foreign key is null php laravel

Пытаюсь сделать отношения "один ко многим"У меня есть таблицы users и orders

125
Как подмешать элементы в массив?

Как подмешать элементы в массив?

Есть два диапазона, например от 25 до 100 и от 100 до 200Минимум при этом равен 25, а максимум 200

103