2016-10-27 44 views
0

我在我的網站上填寫了一個表單(包括文件導入輸入和其他幾個標準文本輸入)。
我使用$ _POST()檢索輸入數據,然後調用php函數將數據保存在mysql數據庫中。完成在header之前運行php函數()

一旦表格完成並提交按鈕按下(<form action="" method="post" enctype="multipart/form-data">),我希望所有的PHP函數運行,然後,然後才重定向到另一頁(使用header())。

問題是我們必須把header()調用我們的PHP函數或否則PHP返回錯誤。因此header()被放置在php函數之前。

這是什麼樣子:

if(isset($_POST)){ 
header("Location: other_page.php"); 

save_name($_post['name']); 
//... more php functions to save data(including input file) 
} 

這不是大部分時間問題,但有時似乎之前所有的PHP函數已經正常運行至極明顯的頁面重定向是一個大問題...

我認爲這是由於函數運行時間過長(即輸入文件太大?),並且重定向在函數有時間完成之前生效。

如果我可以得到一些幫助來解決這個問題,那將會很棒! =)

回答

2

問題是我們必須在調用我們的php函數之前放上header(),否則php返回錯誤。

不需要。您只需啓用PHP的output buffering功能,這將很有可能解決您的問題。

+0

啊太棒了!我沒有意識到這種可能性。所以,如果我把函數後面的header(),這是否意味着所有的函數將在重定向之前運行? – Jackymamouth

+0

是的,根據文檔:*輸出控制功能允許您控制從腳本發送輸出的時間。這可以在幾種不同的情況下使用,* ***尤其是在腳本開始輸出數據後需要將標題發送到瀏覽器時。*** –

+0

使用上面的簡單示例;你將如何實現這個? (對不起,我是新手:S) – Jackymamouth

相關問題