2012-08-27 51 views
1

我有一個表單和提交按鈕的HTML頁面。發送標題後重定向php腳本

一旦我點擊提交,所有表單數據,謝謝fpdf,變成pdf。 本pdf無任何問題地發送到我的電子郵件。

總是建立這個小小的網頁一切正常沒有問題,我能到我的用戶重定向到一個感謝您網頁沒有問題,此代碼:一旦

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

,因爲我已經實現了PDF文件的保存最終重定向停止工作。

我已經實現了PDF容易保存FPDF:

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

和閱讀的計算器和所有的互聯網,我明白,你不能送兩個頭。

我想到了用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(); 
?> 

仍沒有運氣。

我的想法有什麼問題?

+1

你可以發送兩個頭(或任何數字,真的)就好。您只能在標題之間或之前輸出內容。 –

+0

下載文件時,不要輸出其他內容。實際上,您將*輸出的內容混合到下載的內容中。如果你在那裏使用Javascript,你的PDF將會包含這些行(並且可能會破壞整個事物)。 –

回答

3

你應該用另一種方式來解決這個問題。

發送用戶到感謝頁面,並在該感謝頁面做$pdf->Output()。這應該做你想做的。

+0

這個建議聽起來非常棒。我怎樣才能實現它?我需要一個thankyou.php我想...然後一個簡單的$ pdf-> Output()應該可以工作嗎?也許我需要包含我的create.php,對吧? – Pitto

+0

正好。試試吧,應該可以工作 –

+0

它不會:( 我在我的thankyou.php頁面中只有兩件事:包括和pdf打印 發生什麼事是腳本開始發送郵件而不停止(電子郵件發送是在我的create.php),並從來沒有顯示我的謝謝你的頁面(可能是因爲create.php包括?)。 我錯了嗎?在哪裏? – Pitto

3

網頁/ HTTP是一個請求 - 響應系統。瀏覽器發送一個請求,其中有,其中一個響應。您根本無法使用PDF 重定向,或者使用PDF 某些Javascript。

通常情況下,首先顯示謝謝頁面,然後在此頁面內使用Javascript重定向到文件下載。這樣頁面保持不變,文件下載。

+0

你好!所以這就是我要做的:form.html(簡單的表單發佈) - > create.php(保存表單數據在mysql中,併發送PDF到電子郵件) - > thankyou.html(我應該使用哪種javascript?) - > save.php? (也許在save.php中,我應該只是把函數保存在pdf中,包括create.php?) – Pitto

1

你可以使thank-you.php發送PDF文件。提交表單後,將用戶發送至感謝頁面,然後感謝頁面將向用戶發送PDF文件。通過這種方式,感謝頁面可見,並且在下載PDF文件後,頁面仍然可見。

+0

任何提示如何? (javascript?哪個javascript?) – Pitto