public function ic2_isError($url) { // ブラックリストをチェック $blacklist = new IC2_DataObject_BlackList(); if ($blacklist->get($url)) { switch ($blacklist->type) { case 0: return 'x05'; // No More // No More case 1: return 'x01'; // Aborn // Aborn case 2: return 'x04'; // Virus // Virus default: return 'x06'; // Unknown } } // エラーログをチェック if ($this->_ini['Getter']['checkerror']) { $errlog = new IC2_DataObject_Errors(); if ($errlog->get($url)) { return $errlog->errcode; } } return FALSE; }
function ic2_error($code, $optmsg = '', $write_log = true) { global $_conf, $id, $uri, $file, $redirect; $map = array(100 => 'Continue', 101 => 'Switching Protocols', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 306 => '(Unused)', 307 => 'Temporary Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Timeout', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Long', 415 => 'Unsupported Media Type', 416 => 'Requested Range Not Satisfiable', 417 => 'Expectation Failed', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported', 'x01' => 'IC2 - Aborned Image', 'x02' => 'IC2 - Broken (or Not) Image', 'x03' => 'IC2 - Too Large', 'x04' => 'IC2 - Virus Infected', 'x05' => 'IC2 - No More', 'x06' => 'IC2 - ???'); $message = $code . ' ' . $map[$code]; if ($optmsg) { $message .= '<br />' . $optmsg; } if ($write_log) { $logger = new IC2_DataObject_Errors(); $logger->uri = isset($uri) ? $uri : (isset($id) ? $id : $file); $logger->errcode = $code; $logger->errmsg = mb_convert_encoding($message, 'UTF-8', 'CP932'); $logger->occured = time(); $logger->insert(); $logger->ic2_errlog_lotate(); } /*if (isset($map[$code]) && 100 <= $code && $code <= 505) { header("HTTP/1.0 {$code} {$map[$code]}"); }*/ if ($redirect) { if ($_conf['ktai'] && !$_conf['iphone']) { $type = 'gif'; } else { $type = 'png'; } $img = strval($code) . '.' . $type; $path = './img/' . $img; $name = 'filename="' . $img . '"'; header('Content-Type: image/' . $type . '; ' . $name); header('Content-Disposition: inline; ' . $name); readfile($path); exit; } echo <<<EOF <html> <head><title>ImageCache::Error</title></head> <body> <p>{$message}</p> </body> </html> EOF; exit; }
// }}} // {{{ 初期化 // ライブラリ読み込み require_once 'HTML/Template/Flexy.php'; require_once P2EX_LIB_DIR . '/ic2/bootstrap.php'; // }}} // {{{ 設定と消去 // 設定ファイル読み込み $ini = ic2_loadconfig(); if (!isset($_REQUEST['table'])) { p2die('ImageCache2 - 不正なクエリ'); } $mode = $_REQUEST['table']; switch ($mode) { case 'errlog': $table = new IC2_DataObject_Errors(); $table->orderBy('occured ASC'); $title = 'エラーログ'; break; case 'blacklist': $table = new IC2_DataObject_BlackList(); $table->orderBy('uri ASC'); $title = 'ブラックリスト'; break; default: p2die('ImageCache2 - 不正なクエリ'); } $db = $table->getDatabaseConnection(); if (isset($_POST['clean'])) { $sql = 'DELETE FROM ' . $db->quoteIdentifier($table->__table); $result = $db->query($sql);