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; }