function ic2_checkAbornedFile($tmpfile, $params) { global $ini; extract($params); // ブラックリスト検索 $bl_check = new IC2_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 IC2_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; }
// }}} // {{{ 出力 $_flexy_options = array('locale' => 'ja', 'charset' => 'cp932', 'compileDir' => $_conf['compile_dir'] . DIRECTORY_SEPARATOR . 'ic2', 'templateDir' => P2EX_LIB_DIR . '/ic2/templates', 'numberFormat' => ''); $flexy = new HTML_Template_Flexy($_flexy_options); $flexy->setData('php_self', $_SERVER['SCRIPT_NAME']); $flexy->setData('skin', $skin_en); $flexy->setData('title', $title); $flexy->setData('mode', $mode); $flexy->setData('reload_js', $_SERVER['SCRIPT_NAME'] . '?nt=' . time() . '&table=' . $mode); $flexy->setData('info_msg', P2Util::getInfoHtml()); $flexy->setData('pc', !$_conf['ktai']); $flexy->setData('iphone', $_conf['iphone']); $flexy->setData('doctype', $_conf['doctype']); $flexy->setData('extra_headers', $_conf['extra_headers_ht']); $flexy->setData('extra_headers_x', $_conf['extra_headers_xht']); if ($table->find()) { switch ($mode) { case 'errlog': $flexy->setData('data_renderer_errlog', TRUE); $flexy->setData('data', ic2_dump_table_errlog($table)); break; case 'blacklist': $flexy->setData('data_renderer_blacklist', TRUE); $flexy->setData('data', ic2_dump_table_blacklist($table)); break; } } P2Util::header_nocache(); $flexy->compile('ic2vt.tpl.html'); $flexy->output(); // }}}