Exemple #1
0
 public function ic2_isError($url)
 {
     // ブラックリストをチェック
     $blacklist = new ImageCache2_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 ImageCache2_DataObject_Errors();
         if ($errlog->get($url)) {
             return $errlog->errcode;
         }
     }
     return false;
 }
Exemple #2
0
function ic2_checkAbornedFile($tmpfile, $params)
{
    global $ini;
    extract($params);
    // ブラックリスト検索
    $bl_check = new ImageCache2_DataObject_BlackList();
    $bl_check->whereAddQuoted('size', '=', $size);
    $bl_check->whereAddQuoted('md5', '=', $md5);
    if ($bl_check->find(true)) {
        $bl_add = clone $bl_check;
        $bl_add->id = null;
        $bl_add->uri = $uri;
        switch ((int) $bl_check->type) {
            case 0:
                $errcode = 'x05';
                // No More
                break;
            case 1:
                $errcode = 'x01';
                // Aborn
                break;
            case 2:
                $errcode = 'x04';
                // Virus
                break;
            default:
                $errcode = 'x06';
                // Unknown
        }
        // 厳密には、その可能性が限りなく高いだけで100%ではない
        ic2_error($errcode, 'ブラックリストにある画像と同じ内容です。', false);
    }
    // あぼーん画像検索
    $check = new ImageCache2_DataObject_Images();
    $check->whereAddQuoted('size', '=', $size);
    $check->whereAddQuoted('md5', '=', $md5);
    //$check->whereAddQuoted('mime', '=', $mime); // SizeとMD5で十分
    // 同じのが異なるURLで複数登録されていて、ランクが違う可能性があるので
    // (普通に使う分には起こらない...と思う。少なくとも起こりにくいはず)
    $check->orderByArray(array('rank' => 'ASC'));
    if ($check->find(true)) {
        if ($check->rank < 0) {
            ic2_aborn($params);
            // 現状では(たぶんずっと) -1 or -4 だけだが、一応
            if ($check->rank >= -5) {
                $errcode = 'x0' . abs($check->rank);
            } else {
                $errcode = 'x06';
                // Unknown
            }
            // 厳密には、以下同文
            if ($check->rank == -4) {
                $errmsg = 'ウィルスに感染していた画像と同じ内容です。';
            } else {
                $errmsg = '既にあぼーんされている画像と同じ内容です。';
            }
            ic2_error($errcode, $errmsg);
        } else {
            return $check->rank;
        }
    }
    return false;
}
Exemple #3
0
// }}}
// {{{ 設定と消去
// 設定ファイル読み込み
$ini = ic2_loadconfig();
if (!isset($_REQUEST['table'])) {
    p2die('ImageCache2 - 不正なクエリ');
}
$mode = $_REQUEST['table'];
switch ($mode) {
    case 'errlog':
        $table = new ImageCache2_DataObject_Errors();
        $table->orderBy('occured ASC');
        $title = 'エラーログ';
        break;
    case 'blacklist':
        $table = new ImageCache2_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);
    if (DB::isError($result)) {
        p2die($result->getMessage());
    }
} elseif (isset($_POST['delete']) && isset($_POST['target']) && is_array($_POST['target'])) {
    foreach ($_POST['target'] as $target) {