Changeset 18816 for branches/version-2_5-dev/html/handle_error.php
- Timestamp:
- 2010/09/21 09:29:26 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/html/handle_error.php
r18815 r18816 24 24 ob_start('_fatal_error_handler'); 25 25 26 // エラー画面を表示させるためのエラーハンドラ26 // E_USER_ERROR を捕捉した場合にエラー画面を表示させるためのエラーハンドラ 27 27 set_error_handler('handle_error'); 28 28 … … 55 55 56 56 /** 57 * エラー画面を表示させるための関数.57 * E_USER_ERROR を捕捉した場合にエラー画面を表示させるエラーハンドラ関数. 58 58 * 59 59 * この関数は, set_error_handler() 関数に登録するための関数である. 60 * trigger_error にて E_USER_ERROR が生成されると, ob_end_clean() 関数によって 61 * 出力バッファリングが無効にされ, エラーログを出力した後, エラーページへ 62 * リダイレクトする. 60 * trigger_error にて E_USER_ERROR が生成されると, エラーログを出力した後, 61 * エラー画面を表示させる. 63 62 * 64 63 * E_USER_ERROR 以外のエラーが生成された場合, この関数は true を返す. … … 74 73 switch ($errno) { 75 74 case E_USER_ERROR: 76 ob_end_clean();77 75 error_log("FATAL Error($errno) $errfile:$errline $errstr", 3, realpath(dirname(__FILE__) . "/" . HTML2DATA_DIR . "logs/site.log")); 78 76 79 $admin = ""; 80 if (defined('ADMIN_FUNCTION') && ADMIN_FUNCTION) { 81 $admin = "?admin"; 82 } 83 header("Location: " . SITE_URL . "error.php" . $admin); 77 displaySystemError($errstr); 84 78 exit(1); 85 79 break; … … 91 85 return true; 92 86 } 87 88 /** 89 * エラー画面を表示する 90 * 91 * @param string|null $errstr エラーメッセージ 92 * @return void 93 */ 94 function displaySystemError($errstr = null) { 95 if (SC_Utils_Ex::sfIsMobileSite()) { 96 ob_clean(); 97 } else { 98 // 最下層以外の出力用バッファをクリアし、出力のバッファリングを解除する 99 // FIXME #811(出力バッファリングの利用を見直し) 100 while (ob_get_level() >= 2) { 101 ob_end_clean(); 102 } 103 104 // 最下層の出力バッファをクリアする 105 ob_clean(); 106 } 107 108 require_once CLASS_EX_PATH . 'page_extends/error/LC_Page_Error_SystemError_Ex.php'; 109 $objPage = new LC_Page_Error_SystemError_Ex(); 110 register_shutdown_function(array($objPage, 'destroy')); 111 $objPage->init(); 112 if (isset($errstr)) { 113 $objPage->arrDebugMsg[] 114 = "▼▼▼ エラーメッセージ ▼▼▼\n" 115 . $errstr 116 . "▲▲▲ エラーメッセージ ▲▲▲\n" 117 ; 118 } 119 $objPage->process(); 120 } 93 121 ?>
Note: See TracChangeset
for help on using the changeset viewer.