2011-07-04 34 views
1

我是PHP新手,想知道如何處理錯誤時的重定向。PHP中的錯誤重定向

我有一個腳本調用一個函數:

$cart_object->Go2Server(); 
    $echo 'error'; 

現在,如果一切順利的話,該腳本將用戶重定向到另一個URL。但是,如果出現問題,頁面將刷新並顯示錯誤消息。即,函數返回。

我不確定的是如果函數返回,如何將用戶重定向到其他地方。如果我有以下內容,有時會在沒有錯誤時調用redirect_to_error。

$cart_object->Go2Server(); 
redirect_to_error(); 

編輯 - 對不起,我要補充,如果腳本重定向後死亡,這怎麼可以返回一個值?

回答

1

在您的Go2Server功能中,請考慮讓它返回一個布爾變量,指示是否正確設置了標題以重定向用戶。也就是說,如果Go2Server工作,返回true,否則返回false。

然後,如果布爾值爲false,請運行redirect_to_error函數。要重定向某人,請使用標題功能。例如

header('Location: www.example.com');

0

是否在$cart_object->Go2Server();函數中發生了重定向?

如果是這樣,在重定向後有exit()die()

腳本繼續執行重定向時,這就是爲什麼您總是需要在重定向後結束腳本執行的原因。

+0

好吧,我明白了。因此,在積極的重定向之後使用die,否則讓腳本返回並將它們重定向到錯誤頁面? – ric

+1

重定向時,應該添加一個'die()'語句來防止腳本的進一步執行。 – PeeHaa

0

如果您爲成功和失敗的操作顯示了HTTP標頭,這將會很有幫助。

這聽起來像你可能試圖發出一個HTTP重定向(即302響應代碼)after the page output has started(在這一點上的標題不能改變)。如果您的錯誤報告設置正確,您應該在日誌中看到很多「標題已發送」。