phpmailer如何检查字段是否为空sintax

时间:2016-06-01 17:56:13

标签: php email smtp phpmailer required

不幸的是,我在其他问题中找不到答案,即使其中一些似乎相似。我是phpmailer的新手,但我成功地通过使用下面的代码成功地通过smtp发送电子邮件。但是,我希望停止发送带有空字段的电子邮件,但我找不到合适的sintax来做这件事我很乐意建议如果字段为空或如何填写所需的字段,如何停止发送电子邮件。 (我知道如何进行客户端验证,但服务器端是一个问题)。请参阅以下内容:

<?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("address1@domain.com", " First receipient");
$mail->AddCC("address2@domain.com", "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);
}
?> 

2 个答案:

答案 0 :(得分:1)

您只需要对if语句进行一些检查即可。 empty()非常适合检查空,空或0字段

if(isset($_POST['submit']) 
   && !empty($_POST['name'])  
   && !empty($_POST['subject'])  
   && !empty($_POST['email'])  
   && !empty($_POST['message'])) {

您可以在if语句之前进行一些验证,以确保字段已填充且有效,如果不是,则抛出错误。

答案 1 :(得分:0)

按照@anyber的建议,我只是想跟进并告诉您,根据您的代码,这看起来像是联系我们表单。

您不想将收件人设置为在表单上输入的电子邮件,您应该将其更改为您的电子邮件地址。使用其他人的电子邮件设置发件人可能会导致很多问题,如果该用户启用了DMARC或其他身份验证方法,请查看以下资源:Common Contact US Problems