Changeset 18282
- Timestamp:
- 2009/09/07 23:42:32 (17 years ago)
- Location:
- branches/comu-ver2/data/class
- Files:
-
- 3 edited
-
SC_DbConn.php (modified) (1 diff)
-
pages/error/LC_Page_Error_SystemError.php (modified) (4 diffs)
-
util/SC_Utils.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/comu-ver2/data/class/SC_DbConn.php
r18234 r18282 216 216 } 217 217 218 function send_err_mail($result, $sql){ 219 $url = ''; 220 $errmsg = ''; 221 222 if (SC_Utils_Ex::sfIsHTTPS()) { 223 $url = "https://"; 224 } else { 225 $url = "http://"; 226 } 227 $url .= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 228 229 $errmsg = $url."\n\n"; 230 $errmsg.= "SERVER_ADDR:" . $_SERVER['SERVER_ADDR'] . "\n"; 231 $errmsg.= "REMOTE_ADDR:" . $_SERVER['REMOTE_ADDR'] . "\n"; 232 $errmsg.= "USER_AGENT:" . $_SERVER['HTTP_USER_AGENT'] . "\n\n"; 233 $errmsg.= $sql . "\n"; 234 $errmsg.= $result->message . "\n\n"; 235 $errmsg.= $result->userinfo . "\n\n"; 236 237 $arrRbacktrace = array_reverse($result->backtrace); 238 239 foreach($arrRbacktrace as $backtrace) { 240 if($backtrace['class'] != "") { 241 $func = $backtrace['class'] . "->" . $backtrace['function']; 242 } else { 243 $func = $backtrace['function']; 244 } 245 246 $errmsg.= $backtrace['file'] . " " . $backtrace['line'] . ":" . $func . "\n"; 247 } 248 218 function send_err_mail($pearResult, $sql){ 249 219 require_once(CLASS_EX_PATH . "page_extends/error/LC_Page_Error_SystemError_Ex.php"); 250 220 251 221 $objPage = new LC_Page_Error_SystemError_Ex(); 252 222 register_shutdown_function(array($objPage, "destroy")); 253 223 $objPage->init(); 224 $objPage->sourceCode = $sql; 225 $objPage->pearResult = $pearResult; 226 GC_Utils_Ex::gfPrintLog($objPage->sfGetErrMsg()); 254 227 $objPage->process(); 255 256 if (DEBUG_MODE == true) { 257 print('<pre>'); 258 print_r(htmlspecialchars($errmsg, ENT_QUOTES, CHAR_CODE)); 259 print('</pre>'); 260 } 261 262 GC_Utils_Ex::gfPrintLog($errmsg); 263 228 264 229 exit(); 265 230 } -
branches/comu-ver2/data/class/pages/error/LC_Page_Error_SystemError.php
r18234 r18282 26 26 27 27 /** 28 * エラー表示のページクラス29 * SC_DbConnでエラーが発生した場合の表示ページ28 * システムエラー表示のページクラス 29 * システムエラーや例外が発生した場合の表示ページ 30 30 * 31 31 * @package Page … … 34 34 */ 35 35 class LC_Page_Error_SystemError extends LC_Page_Error { 36 37 /** ソースコード */ 38 var $sourceCode; 39 40 /** PEAR_Error */ 41 var $pearResult; 42 43 /** PEAR_Error がセットされていない場合用のバックトレーススタック */ 44 var $backtrace; 36 45 37 46 // }}} … … 78 87 $objView->assignobj($this); 79 88 $objView->display($this->flame); 89 90 if (DEBUG_MODE) { 91 echo '<div class="debug">'; 92 echo '<div>▼▼▼ デバッグ情報ここから ▼▼▼</div>'; 93 echo '<pre>'; 94 print_r(htmlspecialchars($this->sfGetErrMsg(), ENT_QUOTES, CHAR_CODE)); 95 echo '</pre>'; 96 echo '<div>▲▲▲ デバッグ情報ここまで ▲▲▲</div>'; 97 echo '</div>'; 98 } 80 99 } 81 100 … … 97 116 return preg_match('|/admin/|', $_SERVER['PHP_SELF']); 98 117 } 118 119 /** 120 * エラーメッセージを生成する 121 * 122 * @return string 123 */ 124 function sfGetErrMsg() { 125 $errmsg = ''; 126 $errmsg .= $this->lfGetErrMsgHead(); 127 $errmsg .= "\n"; 128 129 // エラーとなったソースコードが明示的に指定されている場合 130 if (!is_null($this->sourceCode)) { 131 $errmsg .= $this->sourceCode . "\n"; 132 } 133 134 // PEAR エラーを伴う場合 135 if (!is_null($this->pearResult)) { 136 $errmsg .= $this->pearResult->message . "\n\n"; 137 $errmsg .= $this->pearResult->userinfo . "\n\n"; 138 $errmsg .= SC_Utils_Ex::sfBacktraceToString($this->pearResult->backtrace); 139 } 140 // (上に該当せず)バックトレーススタックが指定されている場合 141 else if (is_array($this->backtrace)) { 142 $errmsg .= SC_Utils_Ex::sfBacktraceToString($this->backtrace); 143 } 144 // (上に該当せず)バックトレースを生成できる環境(一般的には PHP 4 >= 4.3.0, PHP 5)の場合 145 else if (function_exists("debug_backtrace")) { 146 $errmsg .= SC_Utils_Ex::sfBacktraceToString(array_slice(debug_backtrace(), 2)); 147 } 148 149 return $errmsg; 150 } 151 152 /** 153 * エラーメッセージの冒頭部を生成する 154 * 155 * @return string 156 */ 157 function lfGetErrMsgHead() { 158 $errmsg = ''; 159 $errmsg .= SC_Utils_Ex::sfGetUrl() . "\n"; 160 $errmsg .= "\n"; 161 $errmsg .= "SERVER_ADDR:" . $_SERVER['SERVER_ADDR'] . "\n"; 162 $errmsg .= "REMOTE_ADDR:" . $_SERVER['REMOTE_ADDR'] . "\n"; 163 $errmsg .= "USER_AGENT:" . $_SERVER['HTTP_USER_AGENT'] . "\n"; 164 165 return $errmsg; 166 } 99 167 } 100 168 ?> -
branches/comu-ver2/data/class/util/SC_Utils.php
r18276 r18282 132 132 } 133 133 134 /** 135 * 例外エラーページの表示 136 * 137 * @return void 138 */ 139 function sfDispException() { 140 require_once(CLASS_EX_PATH . "page_extends/error/LC_Page_Error_SystemError_Ex.php"); 141 142 $objPage = new LC_Page_Error_SystemError_Ex(); 143 register_shutdown_function(array($objPage, "destroy")); 144 $objPage->init(); 145 if (function_exists("debug_backtrace")) { 146 $objPage->backtrace = debug_backtrace(); 147 } 148 GC_Utils_Ex::gfPrintLog($objPage->sfGetErrMsg()); 149 $objPage->process(); 150 151 exit(); 152 } 153 134 154 /* 認証の可否判定 */ 135 155 function sfIsSuccess($objSess, $disp_error = true) { … … 2099 2119 return Text_Password::create($length); 2100 2120 } 2121 2122 /** 2123 * 現在の URL を取得する 2124 * 2125 * @return string 現在のURL 2126 */ 2127 function sfGetUrl() { 2128 $url = ''; 2129 2130 if (SC_Utils_Ex::sfIsHTTPS()) { 2131 $url = "https://"; 2132 } else { 2133 $url = "http://"; 2134 } 2135 2136 $url .= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . '?' . $_SERVER['QUERY_STRING']; 2137 2138 return $url; 2139 } 2140 2141 /** 2142 * バックトレースをテキスト形式で出力する 2143 * 2144 * @return string テキストで表現したバックトレース 2145 */ 2146 function sfBacktraceToString($arrBacktrace) { 2147 $string = ''; 2148 2149 foreach ($arrBacktrace as $backtrace) { 2150 if (strlen($backtrace['class']) >= 1) { 2151 $func = $backtrace['class'] . $backtrace['type'] . $backtrace['function']; 2152 } else { 2153 $func = $backtrace['function']; 2154 } 2155 2156 $string .= $backtrace['file'] . " " . $backtrace['line'] . ":" . $func . "\n"; 2157 } 2158 2159 return $string; 2160 } 2101 2161 } 2102 2162 ?>
Note: See TracChangeset
for help on using the changeset viewer.
