Отправляю данные из формы через AJAX в файл smart.php. Данные в smart.php передаются, но переменные в php файле эти данные не видят, поэтому и получаю ошибку Undefined index. Абсолютно не понимаю, почему это происходит.
JS
form.addEventListener('submit', function (e) {
e.preventDefault();
let data = new FormData(form),
obj = {};
let request = new XMLHttpRequest();
data.forEach(function (value, key) {
obj[key] = value;
});
let jsonData = JSON.stringify(obj);
console.log(jsonData);
request.open('POST', 'mailer/smart.php');
request.setRequestHeader('Content-Type', 'application/json;');
request.send(jsonData);
)};
PHP
<?php
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$message = $_POST['message'];
require_once('phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer;
$mail->CharSet = 'utf-8';
// $mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'Yasminderewish@gmail.com'; // Наш логин
$mail->Password = '*********'; // Наш пароль от ящика
$mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to
$mail->setFrom('Yasminderwish@gmail.com'); // От кого письмо
$mail->addAddress('vladlensidenko@seznam.cz'); // Add a recipient
//$mail->addAddress('ellen@example.com'); // Name is optional
//$mail->addReplyTo('info@example.com', 'Information');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');
//$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Данные с сайта';
$mail->Body = '
Пользователь оставил данные <br>
Имя: ' . $name . ' <br>
Номер телефона: ' . $phone . '<br>
E-mail: ' . $email . '<br>
Сообщение: ' . $message . '';
if(!$mail->send()) {
return false;
} else {
return true;
}
?>