2012-02-18 76 views
1

我正在構建一個大型的Web應用程序,我需要一個體面的系統來向用戶顯示錯誤(使用PHP和非侵入式JavaScript)。到目前爲止,當檢測到錯誤時,應用程序將重定向到error.php頁面,並根據鏈接顯示一條消息。如何以正確的方式向用戶顯示錯誤?

例如,如果用戶在accountCreation.php提交一個表單空白,則它重定向到www.example.com/error/FIELD_IS_EMPTY,然後error.php檢索要顯示的消息並打印,這樣的:

switch ($_GET['message']) { 
case 'FIELD_IS_EMPTY': 
    echo "You can't leave the field blank."; 
    break; 

case 'TOO_LONG': 
    echo "Text must be shorter than 128 characters."; 
    break; 

default: 
    break; 
} 

至少它的工作原理,但我不知道這是否是一種可擴展的方式。此外,如果有人輸入www.example.com/error/FIELD_IS_EMPTY,即使用戶從未提交表單,也會顯示錯誤。有沒有人有任何建議如何正確地做到這一點?謝謝!處理錯誤

+0

http://stackoverflow.com/questions/8438022/php-redirection-not-working – 2012-02-18 09:48:03

+1

嚴格來說可能重複這不是錯誤,而是常規郵件。所以,我認爲在任何地方重定向用戶都沒有意義。 – 2012-02-18 09:48:38

+0

然後你會怎麼做? – federicot 2012-02-18 09:49:39

回答

-1

最好的辦法是

  1. 404,505,303個相關的錯誤,你可以重定向到一個標準的錯誤頁面。它根據錯誤狀態動態處理錯誤消息
  2. 與字段信息相關的錯誤,錯誤的條目和即將出現的錯誤。把它們放在同一頁面上並在那裏顯示。
+0

爲什麼重定向?發送301和503的時候有什麼意義? – 2012-02-18 09:51:15

+0

@ Col.Shrapnel:用於顯示自定義錯誤消息,它是最好的方法。而不是默認消息。 – 2012-02-18 09:56:54

+0

如果您能夠發送HTTP標頭,您也可以發送自定義錯誤頁面。所以,這個問題再次 - 爲什麼重定向? – 2012-02-18 10:09:31

-1

有你這樣想阻止一個簡單的方法,直接訪問這個頁面:如果用戶填寫表單創建一個常數(如$_SESSION['formComplete'] = true;),並在你要控制的誤差放頁面腳本檢查常量是否設置,否則重定向到另一個頁面。這裏有一個例子:

if(empty($_SESSION['formComplete'])) { 
    header("location:index.php"); 
    die(); 
} 
相關問題