我有一个简单的表单,其中包含四个输入字段,分别是姓名,电子邮件,电话和消息。我将JavaScript与Ajax结合使用,将输入字段发布到PHP文件中,以进行验证和通过phpmailer进行邮寄。
我从验证函数收集数组中的错误。我使用if语句通过json_encode(array)
函数将错误发送回html页面并退出脚本。否则,我让脚本继续并成功将电子邮件发送到我的收件箱。
我遇到的问题是json_encode(array)
退出发现或未发现错误的脚本。即使我没有用die强制退出脚本或退出。在这方面,由于脚本过早终止,因此不会发送电子邮件。
我在下面的php文件中列出了几行内容,以说明如何设置if语句。
任何帮助将不胜感激。
我花了数小时在网络上搜索无济于事的答案。我试图将json_encode
函数放置在文件中的其他位置,但是它不起作用。我尝试将错误数组与来自邮件发送功能的成功或失败字符串组合在一起,但无法正常工作。
if ( $errors != null ) {
echo json_encode( $errors );
exit;
} else {
$mail = new PHPMailer( true );
/* Set the mail sender. */
$mail->setFrom( 'jsmith@gmail.com', 'John Smith' );
/* Add a recipient. */
//set who is receving mail
$mail->addAddress( 'heh@hotmail.com' );
/* Set the subject. */
$mail->Subject = 'New message from contact form';
/* Set email to be sent as HTML */
$mail->isHTML( true );
/* Set the mail message body. */
$mail->Body =
我希望一旦if语句清除错误,整个php文件脚本将继续进行,直到通过电子邮件发送数据为止。但是,这没有发生。
答案 0 :(得分:0)
我在另一个帖子中找到了另一个相关问题的答案。 errors数组包含所有空变量,我必须通过条件语句来确定是否应以布尔值false发送邮件(未找到错误),该条件不将数组视为空。我不得不将条件if语句改为使用array_filters。