К сожалению, я не смог найти ответ в других вопросах, хотя некоторые из них, похоже, похожи. Я новичок в phpmailer, но мне удалось успешно отправить электронную почту через SMTP, используя приведенный ниже код. Однако я хочу прекратить отправку электронных писем с пустыми полями, но не могу найти правильный синтаксис для этого, и я был бы признателен за совет, как остановить отправку электронной почты, если поля пусты или как сделать поля обязательными. (Я знаю, как выполнить проверку на стороне клиента, но проблема на стороне сервера). Пожалуйста, смотрите ниже:
<?php
if(isset($_POST['submit'])) {
$message=
'Name: '.$_POST['name'].'<br />
Subject: '.$_POST['subject'].'<br />
Email: '.$_POST['email'].'<br />
Message: '.$_POST['message'].'';
require "PHPMailer-master/class.phpmailer.php";
$mail = new PHPMailer();
require "smtp.php";
$mail->SetFrom($_POST['email'], $_POST['name']);
$mail->AddReplyTo($_POST['email'], $_POST['name']);
$mail->Subject = "Message from www";
$mail->MsgHTML($message);
$mail->AddAddress("[email protected]", " First receipient");
$mail->AddCC("[email protected]", "Second receipient");
$result = $mail->Send();
$message = $result ? '<div class="alert alert-success" role="alert"> Message has been sent ! </div>': '<div class="alert alert-danger" role="alert"><strong>Error!</strong> !</div>';
unset($mail);
}
?>
Вам просто нужно добавить несколько проверок в ваше заявление if. empty()
отлично подходит для проверки пустых, нулевых или 0 полей
if(isset($_POST['submit'])
&& !empty($_POST['name'])
&& !empty($_POST['subject'])
&& !empty($_POST['email'])
&& !empty($_POST['message'])) {
Вы можете сделать некоторую проверку перед вашим if
заявление, чтобы убедиться, что поля заполнены и действительны, и выдает ошибку, если они не.
Следуйте тому, что предложил @anyber, я просто хотел продолжить и сообщить, что на основе вашего кода это похоже на форму обратной связи.
Вы не хотите указывать адрес электронной почты, указанный в форме, вы должны изменить его на свой адрес электронной почты. Установка сообщения с чужой электронной почтой может привести к большому количеству проблем. Если у этого пользователя включена DMARC или другие методы проверки подлинности, взгляните на этот ресурс: Общие контакты с нами