1

我有一个带有表单和提交按钮的 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->Output(); 准备一个thankyou.php 页面;在里面。它没有用......所以我想在我的 create.php 中使用包含(所有魔法发生在哪里:pdf创建,电子邮件发送,插入数据库等):

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

仍然没有运气。

我的想法有什么问题?

4

3 回答 3

3

你应该反过来处理这个问题。

将用户发送到感谢页面,然后在该感谢页面上执行$pdf->Output(). 那应该做你想做的事。

于 2012-08-27T16:18:01.870 回答
3

网页/HTTP 是一个请求-响应系统。浏览器发送一个请求,只有一个响应。您根本无法使用 PDF重定向或 PDF一些 Javascript 进行响应。

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

于 2012-08-27T16:18:11.380 回答
1

您可以让thank-you.php 发送PDF 文件。提交表单后,将用户发送到感谢页面,然后感谢页面将向用户发送 PDF 文件。这样,感谢页面是可见的,并且在下载 PDF 文件后该页面仍然可见。

于 2012-08-27T16:20:45.613 回答