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

Почему от формы настолько долгий ответ?

После заполнения формы ответ от сайта очень долгий вот - 5cbff52509640829682810.png
А именно вот этой части кода:
// Отправка данных на сервер
				$('#form').trigger('reset');
				$(function() {
					'use strict';
					$('#form').on('submit', function(e) {
						e.preventDefault();
						$.ajax({
							url: 'send.php',
							type: 'POST',
							contentType: false,
							processData: false,
							data: new FormData(this),
							success: function(msg) {
								console.log(msg);
								if (msg == 'ok') {
									alert('Наш менеджер в скором времени свяжется с вами!'); // ВОТ ЭТОТ ОТВЕТ
          $('#form').trigger('reset'); // очистка формы
        } else {
        	alert('Ошибка');
        }
      }
    });
					});
				});

Проверить на сколько долго идет ответ вы можете на этом сайте kozlovma.site нажмите на ссылку под номером телефона "Бесплатный звонок". В чем может быть проблема и как ее решить?

Файл send.php
<?php
// Файлы phpmailer
require 'phpmailer/PHPMailer.php';
require 'phpmailer/SMTP.php';
require 'phpmailer/Exception.php';
// Переменные, которые отправляет пользователь
$name = $_POST['name'];
$phone = $_POST['phone'];
$mail = new PHPMailer\PHPMailer\PHPMailer();
try {
    $msg = "ok";
    $mail->isSMTP();   
    $mail->CharSet = "UTF-8";                                          
    $mail->SMTPAuth   = true;
    // Настройки вашей почты
    $mail->Host       = 'smtp.yandex.ru'; // SMTP сервера GMAIL
    $mail->Username   = 'ttestowoe@yandex.kz'; // Логин на почте
    $mail->Password   = '******'; // Пароль на почте
    $mail->SMTPSecure = 'ssl';
    $mail->Port       = 465;
    $mail->setFrom('ttestowoe@yandex.kz', 'Ramspromo'); // Адрес самой почты и имя отправителя
    // Получатель письма
    $mail->addAddress('ramskazahstan@yandex.kz');
        // -----------------------
        // Само письмо
        // -----------------------
        $mail->isHTML(true);
    
        $mail->Subject = 'БЕСПЛАТНЫЙ ЗВОНОК';
        $mail->Body    = "<b>Имя:</b> $name <br>
        <b>Телефон:</b> $phone<br>";
// Проверяем отравленность сообщения
if ($mail->send()) {
    echo "$msg";
} else {
echo "Сообщение не было отправлено. Неверно указаны настройки вашей почты";
}
} catch (Exception $e) {
    echo "Сообщение не было отправлено. Причина ошибки: {$mail->ErrorInfo}";
}
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@UncleMisha Автор вопроса
5cbffe24b76d4412704860.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dGololobov
начинающий
Скорее всего медленно работает скрипт send.php Нужно в нем копаться
при попытке вызова send.php нужно ждать ответа секунд 5
Ответ написан
Urvin
@Urvin
Вся задержка на бэкенде. Отправка e-mail - дорогая операция и нет никакого резона ставить ее в поток обработки пользовательских данных.
Варианты решения:
- Записывать данные обращения в БД, ставить маркер "не отправлено", в расписании обходить такие записи и отправлять на почту
- Использовать очереди
Ответ написан
Ваш ответ на вопрос

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

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