В чем ошибка при работе PHPMailer на хостинге?

Загрузил сайт на пробный хостинг.
При отправке формы в консоли выдает ошибку:

Uncaught (in promise) 
SyntaxError: Unexpected token '<', "<br /><b>"... is not valid JSON


Вот следующий код...
document.addEventListener('DOMContentLoaded', function () {
  const form = document.getElementById('form');
  form.addEventListener('submit', formSend);

  async function formSend (e) {
    
    e.preventDefault();

    let error = formValidate(form);

    let formData = new FormData(form);
    

    if(error === 0) {
      form.classList.add('_sending');

      let response = await fetch('sendmail.php', {
        method: 'POST',
        body: formData
      });
      if(response.ok) {
        let result = await response.json();
        alert(result.message);
        form.reset();
        form.classList.remove('_sending');

      } else {
        alert("Ошибка");
        form.classList.remove('_sending');
      }

    } else {
      alert('заполните обязательные поля');
    }
  }


  function formValidate(form) {
    let error = 0;
    let formReq = document.querySelectorAll('._req');

    for (let index = 0; index < formReq.length; index++) {
      const input = formReq[index];
      formRemoveError(input);

      if(input.classList.contains('_email')) {
          if(emailTest(input)) {
            formAddError(input);
            error++;
          } 
        } else {
          if(input.value === "") {
            formAddError(input);
            error++;
          }
      }

      if(input.classList.contains('_phone')) {
        if(isPhoneValid(input)) {
          formAddError(input);
          error++;
        }
      }
    }
    return error;
  }

  function formAddError(input) {
    input.parentElement.classList.add("_error");
    input.classList.add("_error");
  }

  function formRemoveError(input) {
    input.parentElement.classList.remove("_error");
    input.classList.remove("_error");
  }

  // Функция теста Email
  function emailTest(input) {
    return !/^\w+([\.-]?\w+)*@\w+([\.-]?w+)*(\.\w{2,8})+$/.test(input.value);
  }

  // Функция теста телефона
  function isPhoneValid (input) {
    return !/^\8\d{3}\d{3}\d{2}\d{2}$/g.test(input.value);
  }
})


код из sendmail.php
<?php
  use PHPMailer\PHPMailer\PHPMailer;
  use PHPMailer\PHPMailer\Exception;

  require 'phpmailer/src/Exception.php';
  require 'phpmailer/src/PHPMailer.php'; 

  $mail = new PHPMailer(true);
  
  $mail->CharSet = 'UTF-8';
  $mail->setLanguage('ru', 'phpmailer/language/');
  $mail->IsHTML(true);

  //От кого письмо
  $mail->setFrom('v-yachts@yandex.com', 'Заявка на заказ');
  //Кому отправить
  $mail->addAddress('dominorog323@gmail.com'); //shubin.yuri@gmail.com
  $mail->Subject = 'Новая заявка';

  //Тело письма
  $body = '<h1>Новое письмо!</h1>';

  if(trim(!empty($_POST['name']))) {
    $body.='<p><strong>Имя:</strong> '.$_POST['name'].'</p>';
  }
  if(trim(!empty($_POST['phone']))) {
    $body.='<p><strong>Телефон:</strong> '.$_POST['phone'].'</p>';
  }
  if(trim(!empty($_POST['email']))) {
    $body.='<p><strong>E-mail:</strong> '.$_POST['email'].'</p>';
  }

  $mail->Body = $body;

  //Отправляем
  if(!mail->send()) {
    $message = 'Ошибка';
  } else {
    $message = 'Данные отправлены';
  }

  $response = ['message' => $message];

  header('Content-type: application.json');
  echo json_encode($response);
?>
  • Вопрос задан
  • 734 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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