Ignore:
Timestamp:
2010/12/19 10:50:48 (13 years ago)
Author:
Seasoft
Message:

#567(エラーハンドリングの修正及び抽象化)

  • デバックモード時の Fatal Error は、そのまま画面に出力
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/html/handle_error.php

    r18816 r19745  
    3333 * 捕捉できないため, ob_start にこの関数を定義し, Fatal Error が発生した場合 
    3434 * に出力される HTML 出力を捕捉する. 
    35  * この関数が実行され, エラーが捕捉されると, エラーページへリダイレクトする. 
     35 * この関数が実行され, エラーが捕捉されると, DEBUG_MODE が無効な場合, 
     36 * エラーページへリダイレクトする. 
    3637 * 
    3738 * @param string $buffer 出力バッファリングの内容 
     
    4142function &_fatal_error_handler(&$buffer) { 
    4243    if (preg_match('/<b>(Fatal) error<\/b>: +(.+) in <b>(.+)<\/b> on line <b>(\d+)<\/b><br \/>/i', $buffer, $matches)) { 
    43  
    44         $admin = ""; 
    45         if (defined('ADMIN_FUNCTION') && ADMIN_FUNCTION) { 
    46             $admin = "?admin"; 
    47         } 
    4844        error_log("FATAL Error: $matches[3]:$matches[4] $matches[2]\n", 3, 
    4945                  realpath(dirname(__FILE__) . "/" . HTML2DATA_DIR . "logs/site.log")); 
    50         header("Location: " . SITE_URL . "error.php" . $admin); 
    51         exit; 
     46        if (DEBUG_MODE !== true) { 
     47            $url = SITE_URL . "error.php"; 
     48            if (defined('ADMIN_FUNCTION') && ADMIN_FUNCTION) { 
     49                $url .= "?admin"; 
     50            } 
     51            header("Location: $url"); 
     52            exit; 
     53        } 
    5254    } 
    5355    return $buffer; 
Note: See TracChangeset for help on using the changeset viewer.