Отправка заявок с формы на почту?

Доброго времени суток .
Подскажите на странице есть несколько форм обратной связи. Одна форма имеет поля Имя и Телефон.
Другая форма имеет поля Имя, Телефон, Email.
Для отправки данный я использую свой обработчик. Назвал его mail.php
в форме прописываю путь до него
<form id="quiz-top" action="mail.php" class="quiz-form" method="POST">
                    <input type="text" name="user" />
                    <input type="tel" name="phone" />
                    <input type="submit"  value="Отправить">
</form>


В обработчике mail.php прописываю следующее:
$arr = array(
    'Имя клиента: ' => $name,
    'Телефон: ' => $phone,
);



$formSubject = $_POST['form_subject'];

$mail = new PHPMailer\PHPMailer\PHPMailer();

try{
<?php
    $msg = "ok";
    $mail->SMTPDebug = 0;
    // $mail->isSMTP();
    $mail->CharSet = "UTF-8";
    $mail->SMTPAuth   = true;

    $mail->Host = '';
    $mail->Username = ''; 
    $mail->Password = ''; //пароль от почты через которую отправляем данные
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;

    $mail->setFrom();//вводим email через который будем отправлять письма
    $mail->addAddress(); //вводим email на который будут приходить данные

    $mail->isHTML(true);
    $mail->Subject = 'Заявка с сайта <alton.msk.ru>';
    $mail->Body    = '<h2>Заявка с формы - '. $formSubject . '</h2>
					<table style="border-collapse: collapse;">
						<tr>
							<th style="padding: 10px; border: #e9e9e9 1px solid; background-color: #f8f8f8;text-align:left;"><b>Имя</b></th>
							<td style="padding: 10px; border: #e9e9e9 1px solid;">' . $name . '</td>
						</tr>
						<tr>
							<th style="padding: 10px; border: #e9e9e9 1px solid; background-color: #f8f8f8;text-align:left;"><b>Телефон</b></th>
							<td style="padding: 10px; border: #e9e9e9 1px solid;">' . $phone . '</td>
						</tr>
					</table>';

    if ($mail->send()) {
        echo "$msg";
    } else {
        echo "Сообщение не было отправлено. Неверно указаны настройки вашей почты";
    }

} catch (Exception $e) {
    echo "Сообщение не было отправлено. Причина ошибки: {$mail->ErrorInfo}";
}

?>


в js прописываю так:
$("#quiz-top").submit(function () {
    const form = $(this);
    $.ajax({
        type: "POST",
        url: "mail.php",
        data: form.serialize()
    });
    return false;
});


Вопрос вот в чем. Как мне сделать в обработчике проверку, что если например в форме нет параметра email то отправляем без него, а если заполнен параметр email то его отправляем тоже. А то сейчас мне приходится для каждой формы создавать свой отдельный обработчик. mail.php, mail2.php и т.д
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
irishmann
@irishmann
Научись пользоваться дебаггером
В начале задай переменную с mail. Потом в $mail->Body проверяй есть ли она, если есть вставить дополнительные строки, иначе ничего.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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