0

我正在使用 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
}
4

5 回答 5

5

解决方法是:将 SMTPDebug 值置为 0。

$mail->SMTPDebug = 0;
于 2014-03-31T18:26:01.917 回答
0

您可以使用 jQuery 来重定向,它可以工作。

<script>
    $(document).ready(function(){
       setTimeout(function(){
           location.href="../index.php";
       });
    });
</script>
于 2015-04-18T06:33:48.657 回答
0

尝试删除之间的空间location and the url

header('Location:contactus-thankyou.php');

于 2012-05-10T12:43:57.820 回答
0

原因是输出在 header loaction 语句之前被缓冲,而 header 语句通常不喜欢 echo 或之前服务器的输出。只需obs_start();在顶部和obs_end_flush();末尾使用:示例:

    obs_start();
    php mailer script starts.........
    ...
    obs_end_flush();
header("Location: index.php");
于 2020-02-03T04:38:36.153 回答
-1

您可以使用

echo "<script language='javascript' type='text/javascript'>location.href='contactus-thankyou.php'</script>";

代替

header('Location: contactus-thankyou.php');
于 2012-05-10T12:43:38.960 回答