Example #1
0
 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;
 }
Example #2
0
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;
}
Example #3
0
// }}}
// {{{ 初期化
// ライブラリ読み込み
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);