В php разбираюсь очень плохо, поэтому прошу вас помочь с настройкой отправки формы через плагин
phpMailer.
Вот
сайт, на котором я пытаюсь настроить отпавку формы из 2 полей с именем и телефоном.
При отправке выскакивает ошибка 500,
скрин 1 прилагаю:
Скрин 2:
Я не эксперт, но походу какае-то ошибка в php файле, код прилагаю.
HTML
<form action="#" class="contactform" id="form">
<label for="field-1" class="field-1_label">Ваше имя</label>
<input type="text" name="name" placeholder="Как вас зовут" class="contactform-name _req" id="field-1" maxlength="40">
<label for="field-2" class="field-2_label">Ваш телефон</label>
<input type="text" name="phone" placeholder="Ваш телефон" class="contactform-phone _req _phone" id="field-2">
<input type="submit" value="Арендовать зал" class="contactform-button">
</form>
JavaScript
"use strict"
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 i = 0; i < formReq.length; i++) {
const input = formReq[i];
formRemoveError(input);
if(input.classList.contains('_req') && input.value === '') {
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');
}
});
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('graffiti211@yandex.ru', 'Оле Арена');
//Кому отправить
$mail->addAddress('graffiti211@yandex.ru');
//Тема письма
$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>';
}
$mail->Body = $body;
//Отправляем
if (!$mail->send()) {
$message = 'Ошибка';
} else {
$message = 'Данные отправлены!';
}
$response = ['message' => $message];
header('Content-type: application/json');
echo json_encode($response);
?>
Все файлы сайта на
GitHub.
Буду благодарен за помощь!