PHPMailer отправляет не все поля
На сайте есть 2 контактные формы, одна в попапе, вторая просто на странице. Я прописываю один код для двух(привожу ниже) и возникают следующие проблемы: 1) в письмах приходят только первые 3 поля, adress и comments приходят пустые 2) в обычной форме проходит проверка заполненности полей перед отправкой, в попапе почему-то нет, хотя код одинаковый на двух страницах Предполагаю что это из-за ajax запроса, но нет идей как это исправить
<form enctype="multipart/form-data" method="POST" id="form" action="send.php" name="volt-form">
<ul class="contact-form-list">
<li class="contact-form-list__item">
<input id="userName" type="text" name="name" class="input" value="" required placeholder="Your name">
</li>
<li class="contact-form-list__item">
<input id="userSurname" type="text" name="surname" class="input" value="" required placeholder="Surname">
</li>
<li class="contact-form-list__item">
<input id="userTel" type="tel" name="phone" class="input" value="" required placeholder="Phone number">
</li>
<li class="contact-form-list__item">
<input id="userEmail" type="email" name="email" class="input" value="" required placeholder="Email">
</li>
<li class="contact-form-list__item">
<input id="userAdress" type="text" name="adress" class="input" value="" required placeholder="Adress">
</li>
<li class="contact-form-list__item">
<textarea id="userComments" type="text" name="comments" class="input input-textarea" value=""
required placeholder="Comments">
</textarea>
</li>
<li class="contact-form-list__item contact-form-list__item">
<input id="formSubmit" type="submit" class="contact-form__btn button button--sm "
value="Make an Order">
</li>
</ul>
</form>
$(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) {
if (msg == true) {
$('#cfModalThx').addClass('cf-modal-submit');
$('#cfModal').removeClass('cf-modal-show');
}
}
});
});
});
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/Exception.php';
require 'PHPMailer/PHPMailer.php';
require 'PHPMailer/SMTP.php';
// Переменные, которые отправляет пользователь
$name = $_POST['name'];
$surname = $_POST['surname'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$text = $_POST['adress'];
$text = $_POST['comments'];
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = '[email protected]'; // Set the SMTP server to send through
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = ssl; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
$mail->Port = 465; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
$mail->CharSet = 'UTF-8';
//Recipients
$mail->setFrom('[email protected]', 'example');
$mail->addAddress("[email protected]", 'example');
$mail->addReplyTo('[email protected]', 'example');
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'New order from the site Volt';
$mail->Body = "<b>Name:</b> $name <br>
<b>Surame:</b> $surname<br><br>
<b>Phone:</b> $phone<br><br>
<b>E-mail:</b> $email<br><br>
<b>Adress:</b><br> $adress<br><br>
<b>Comments:</b><br> $comments<br><br>";
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
Ответы (1 шт):
Автор решения: Quazimorda
→ Ссылка
Вы присваиваете:
$text = $_POST['adress'];
$text = $_POST['comments'];
А пытаетесь использовать:
<b>Adress:</b><br> $adress<br><br>
<b>Comments:</b><br> $comments<br><br>";