Загрузил сайт на пробный хостинг.
При отправке формы в консоли выдает ошибку:
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);
?>