PHPMailer 发送电子邮件并返回带有回显的空白页面
Posted
技术标签:
【中文标题】PHPMailer 发送电子邮件并返回带有回显的空白页面【英文标题】:PHPMailer sending email and returning blank page with echo 【发布时间】:2015-09-23 12:14:56 【问题描述】:电子邮件发送正确,但随后我的提交页面上的所有内容都消失了(尽管在 url 中它说它是同一页面),除了 echo 语句说“消息发送成功”。
我希望在用户收到验证电子邮件后有一个“祝贺”页面或其他不那么俗气的东西来问候用户...
我尝试在 class.phpmailer.php 中搜索重定向功能,但什么也没有。我确定这很简单,但我似乎无法找到造成这种情况的原因。
<?php
require ('/config.inc.php');
require '../PHPMailer/PHPMailerAutoload.php';
if(mysqli_affected_rows($dbc) == 1)
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com"; // SMTP server
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = "censored@gmail.com";
$mail->Password = "censored";
//Set who the message is to be sent from
$mail->setFrom('censored@gmail.com');
//Set an alternative reply-to address
$mail->addReplyTo('censored@gmail.com');
//Set who the message is to be sent to
$mail->addAddress($trimmed['email']);
//Set the subject line
$mail->Subject = 'PHPMailer mail() test';
//Read an html message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML('Thank you for registering at The Circle Of Pi. To activate your account,
please click on this link:\n\n' . BASE_URL . 'activate.php?x=' . urlencode($e) . "&y=$a");
//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//Attach an image file
//$mail->addAttachment('images/phpmailer_mini.png');
//send the message, check for errors
if (!$mail->send())
echo "Mailer Error: " . $mail->ErrorInfo;
else
echo "Message sent!1";
exit();
else
echo '<p class=\"error\">You could not be registered due to a system error. We apologize
for any inconvenience.</p>';
else
echo '<p class = \"error\">That email address has already been registered. If you have
forgotten your password, use the link at the right to have your password sent to you</p>';
else
echo '<p class = \"error\">Please try again.</p>';
mysqli_close($dbc);
?>
【问题讨论】:
你能给我们看看你的一些代码吗?所以我们可以看看发生了什么? @FilipeFerreira 好的,请参阅编辑 :) PHPMailer 不发出重定向;那不是它的工作。 【参考方案1】:如果您的请求是 POST
,那么您在“消息已发送!1”回显之后调用 exit()
。
else
echo "Message sent!1";
exit();
【讨论】:
【参考方案2】:在你的:
<form method="post">
为其添加一个动作,例如:
<form method="post" action="pickaname.php">
并创建一个名为 pickaname.php 的文件,并在插入所有数据后将其重定向到您的祝贺页面。
【讨论】:
以上是关于PHPMailer 发送电子邮件并返回带有回显的空白页面的主要内容,如果未能解决你的问题,请参考以下文章