发送标头后重定向php脚本

时间:2012-08-27 16:13:20

标签: php

我有一个带有表单和提交按钮的html页面。

点击提交所有表单数据后,感谢fpdf,转为pdf。 这个pdf在没有问题的情况下发送到我的电子邮箱。

构建这个小页面所有内容都可以正常运行而且我能够将用户重定向到感谢页面而不会出现此代码问题:

header("Location: /thank-you.php",303);
exit();

一旦我实现了pdf文件,保存最终重定向就会停止工作。

我已经使用fpdf轻松实现了pdf保存:

$pdf->Output("filename.pdf", "D");

阅读stackoverflow和所有互联网我已经明白你不能发送两个标题。

我考虑用javascript解决问题所以我把它放在pdf生成之后

echo "<script language=javascript>
window.location = 'thanks.html'
</script>";

但没有运气。

当浏览器下载pdf文件时,php页面会“停止”。

有机会解决这个问题吗?

编辑:

我得到的所有建议(感谢大家)让我到了同一点:使用感谢页面处理pdf保存。 听起来很棒。

我尝试使用简单的$ pdf-&gt; Output()来准备一个thankyou.php页面;在里面。 它不起作用...... 所以我想在我的create.php中使用一个include(发生了所有的魔法:pdf创建,电子邮件发送,插入到db等):

<?php
include("create.php");
$pdf->Output();
?>

仍然没有运气。

我的想法有什么问题?

3 个答案:

答案 0 :(得分:3)

你应该反过来解决这个问题。

将用户发送到感谢页面,并在感谢页面上$pdf->Output()。那应该做你想要的。

答案 1 :(得分:3)

Webpages / HTTP是一个请求 - 响应系统。浏览器发送一个请求,其中只有一个响应。您根本无法使用PDF 重定向,或者使用PDF 来回复某些Javascript。

典型的做法是首先显示Thank You页面,然后在此页面内使用Javascript重定向到文件下载。这样页面就会保持不变并下载文件。

答案 2 :(得分:1)

您可以发送感谢.php发送PDF文件。提交表单后,将用户发送到感谢页面,然后感谢页面将向用户发送PDF文件。这样,感谢页面可见,下载PDF文件后页面仍然可见。