Use wp_die() for WPDB bails. Send 500 response and no-cache headers so wp_die()s are not cached. props DD32. fixes #3471

git-svn-id: https://develop.svn.wordpress.org/trunk@6110 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Mark Jaquith 2007-09-13 06:23:23 +00:00
parent 2e0f3b30e8
commit 5d12c48818
3 changed files with 15 additions and 32 deletions

View File

@ -1240,13 +1240,17 @@ function wp_die( $message, $title = '' ) {
else else
$admin_dir = 'wp-admin/'; $admin_dir = 'wp-admin/';
if ( !did_action('admin_head') ) : if ( !function_exists('did_action') || !did_action('admin_head') ) :
status_header(500);
nocache_headers();
header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/html; charset=utf-8');
if ( empty($title) ) if ( empty($title) ){
if( function_exists('__') )
$title = __('WordPress › Error'); $title = __('WordPress › Error');
else
$title = 'WordPress › Error';
}
?> ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

View File

@ -401,29 +401,7 @@ class wpdb {
function bail($message) { // Just wraps errors in a nice header and footer function bail($message) { // Just wraps errors in a nice header and footer
if ( !$this->show_errors ) if ( !$this->show_errors )
return false; return false;
wp_die($message);
header('Content-Type: text/html; charset=utf-8');
if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false)
$admin_dir = '';
else
$admin_dir = 'wp-admin/';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WordPress &rsaquo; Error</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="<?php echo $admin_dir; ?>install.css" type="text/css" />
</head>
<body>
<h1 id="logo"><img alt="WordPress" src="<?php echo $admin_dir; ?>images/wordpress-logo.png" /></h1>
<p><?php echo $message; ?></p>
</body>
</html>
<?php
die();
} }
} }

View File

@ -113,6 +113,10 @@ if ( !defined('LANGDIR') ) {
if ( !defined('PLUGINDIR') ) if ( !defined('PLUGINDIR') )
define('PLUGINDIR', 'wp-content/plugins'); // no leading slash, no trailing slash define('PLUGINDIR', 'wp-content/plugins'); // no leading slash, no trailing slash
require (ABSPATH . WPINC . '/compat.php');
require (ABSPATH . WPINC . '/functions.php');
if ( file_exists(ABSPATH . 'wp-content/db.php') ) if ( file_exists(ABSPATH . 'wp-content/db.php') )
require_once (ABSPATH . 'wp-content/db.php'); require_once (ABSPATH . 'wp-content/db.php');
else else
@ -122,7 +126,7 @@ else
$wpdb->prefix = $table_prefix; $wpdb->prefix = $table_prefix;
if ( preg_match('|[^a-z0-9_]|i', $wpdb->prefix) && !file_exists(ABSPATH . 'wp-content/db.php') ) if ( preg_match('|[^a-z0-9_]|i', $wpdb->prefix) && !file_exists(ABSPATH . 'wp-content/db.php') )
die("<strong>ERROR</strong>: <code>$table_prefix</code> in <code>wp-config.php</code> can only contain numbers, letters, and underscores."); wp_die("<strong>ERROR</strong>: <code>$table_prefix</code> in <code>wp-config.php</code> can only contain numbers, letters, and underscores.");
// Table names // Table names
$wpdb->posts = $wpdb->prefix . 'posts'; $wpdb->posts = $wpdb->prefix . 'posts';
@ -151,9 +155,6 @@ else
wp_cache_init(); wp_cache_init();
require (ABSPATH . WPINC . '/compat.php');
require (ABSPATH . WPINC . '/functions.php');
require (ABSPATH . WPINC . '/classes.php'); require (ABSPATH . WPINC . '/classes.php');
require (ABSPATH . WPINC . '/plugin.php'); require (ABSPATH . WPINC . '/plugin.php');
require (ABSPATH . WPINC . '/default-filters.php'); require (ABSPATH . WPINC . '/default-filters.php');