我使用phpmailer发送电子邮件,当电子邮件成功发送,然后我想将页面重定向到其他页面,但它无法正常工作。
我尝试使用服务器端重定向即header();
,但它无效。
当我为客户端尝试它时,它完全重定向到其他页面。
我没有在此页面或其他页面上使用任何sessions
。
下面是我试过的代码
if(!$mail->Send()){
echo "Mailer Error: ". $mail->ErrorInfo;
}else{
//echo "Message sent!";
header('Location: contactus-thankyou.php');
?>
<!-- <meta http-equiv="refresh" content="0; url=contactus-thankyou.php" /> -->
<?php
}
答案 0 :(得分:5)
解决方案是:将SMTPDebug值放在0。
$mail->SMTPDebug = 0;
答案 1 :(得分:0)
尝试删除location and the url
header('Location:contactus-thankyou.php');
答案 2 :(得分:0)
您可以使用jQuery重定向,但它可以正常工作。
<script>
$(document).ready(function(){
setTimeout(function(){
location.href="../index.php";
});
});
</script>
答案 3 :(得分:0)
原因是输出在标题loaction语句之前被缓冲,并且标题语句通常不喜欢echo或服务器之前的输出。
只需在顶部使用obs_start();
,在末尾使用obs_end_flush();
即可:
例如:
obs_start();
php mailer script starts.........
...
obs_end_flush();
header("Location: index.php");
答案 4 :(得分:-1)
你可以使用
echo "<script language='javascript' type='text/javascript'>location.href='contactus-thankyou.php'</script>";
取代
header('Location: contactus-thankyou.php');