New status_header code, and WP-DB bail() errors send a 503 Service Unavailable. see #2409

Also, the new header code to text array has 302 as Found. fixes #4183


git-svn-id: http://svn.automattic.com/wordpress/trunk@5446 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
rob1n 2007-05-11 03:34:50 +00:00
parent f432ed648a
commit ee7d9e9e18
3 changed files with 71 additions and 18 deletions

View File

@ -916,24 +916,30 @@ function wp($query_vars = '') {
$wp->main($query_vars);
}
function status_header( $header ) {
if ( 200 == $header )
$text = 'OK';
elseif ( 301 == $header )
$text = 'Moved Permanently';
elseif ( 302 == $header )
$text = 'Moved Temporarily';
elseif ( 304 == $header )
$text = 'Not Modified';
elseif ( 404 == $header )
$text = 'Not Found';
elseif ( 410 == $header )
$text = 'Gone';
function get_status_header_desc( $code ) {
global $wp_header_to_desc;
$code = (int) $code;
if ( isset( $wp_header_to_desc[$code] ) ) {
return $wp_header_to_desc[$code];
} else {
return '';
}
}
if ( version_compare(phpversion(), '4.3.0', '>=') )
@header("HTTP/1.1 $header $text", true, $header);
else
@header("HTTP/1.1 $header $text");
function status_header( $header ) {
$text = get_status_header( $header );
if ( empty( $text ) ) {
return false;
} else {
if ( version_compare( phpversion(), '4.3.0', '>=' ) ) {
return @header( "HTTP/1.1 $header $text", true, $header );
} else {
return @header( "HTTP/1.1 $header $text" );
}
}
}
function nocache_headers() {

View File

@ -35,4 +35,50 @@ $is_IE = ( $is_macIE || $is_winIE );
$is_apache = ((strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false) || (strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false)) ? true : false;
$is_IIS = (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false) ? true : false;
$wp_header_to_desc = apply_filters( 'wp_header_to_desc_array', 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',
307 => 'Temporary Redirect',
400 => 'Bad Request',
401 => 'Unauthorized',
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'
) );
?>

View File

@ -369,7 +369,8 @@ class wpdb {
function bail($message) { // Just wraps errors in a nice header and footer
if ( !$this->show_errors )
return false;
status_header( 503 );
header('Content-Type: text/html; charset=utf-8');
if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false)