2013-05-06 99 views
0

我創建了一個更新數據庫的頁面。在更新頁面上的所有代碼完成後(幾秒鐘後),我希望該頁面自動將您發送回主頁面(顯示數據庫信息的頁面)。在php中重定向後我的頁面完成其功能

我把header()函數中,但似乎在執行任何代碼之前重定向。頭是否使用正確的方法?在代碼和短暫延遲之後是否有另一種重定向方法?

+0

向我們展示你的代碼。所有你需要做的就是在更新之後和任何輸出被髮送到瀏覽器之前把標題調用。 – 2013-05-06 17:31:31

回答

0

是的,但做到這一點,你執行你的代碼以後。

<?php 
function foo(){ 
    //do stuff here 

    header("Location: redirect.php"); 
    exit(); 
} 

確保你不輸出任何東西你做重定向之前,否則它會顯示一個錯誤headers already sent

+0

我實際上發現我可以放置文本輸出,但重定向發生得如此之快以至於沒有時間閱讀該消息,但它至少在Firefox中似乎可以正常工作。感謝您的幫助!! – ForgottenOne 2013-05-06 22:19:06

0

是,header()將做的工作。只要把這個代碼的數據庫更新代碼之後:

header('Location: ...'); 
exit; 

你爲什麼會增加重定向之前的任何延遲?

+0

,以便有時間看到彈出的任何錯誤消息。如果一切順利,我有我的代碼輸出「數據庫成功更新」,如果事情不順利,就會出現錯誤。 – ForgottenOne 2013-05-06 22:09:01

+0

然後,HTTP重定向絕對不是您之後的解決方案:無論是元刷新還是JavaScript重定向,都可以完成這項工作。 – Benjamin 2013-05-06 23:29:20

0

執行PHP代碼後,您應該可以使用header()重定向。確保您的header()調用在重定向之前要運行的代碼之後。

0

是的,使用header()功能與Location: xxx,只需在您的代碼完成活動後發送。還要注意,爲了使header()生效,在調用header()之前不能實現真正的頁面輸出(儘管即使這可以通過使用輸出緩衝來克服)。

0

頭()是重定向正確的功能,但是header()函數只有在沒有輸出到頁面的工作。

這將是很好,如果你可以在這裏展示一些代碼。

<?php 
header('Location: http://www.example.com/'); 
?> 
+0

對不起,我是一個新手編碼器(學生),正在爲一所教育機構工作(即時爲一所大學作爲學生僱員)。即時通訊應該小心我給第三方網站等的代碼。但就像我說的那樣,我是一個新手,所以我需要不時的幫助才能正常工作。順便謝謝你的幫助! – ForgottenOne 2013-05-06 22:11:36