fixed a bug with headers that may be sent after output

This commit is contained in:
Loïc Chapeaux
2001-11-16 14:07:24 +00:00
parent 6648ebaf6e
commit 81f94f9851
3 changed files with 92 additions and 23 deletions

View File

@@ -26,14 +26,17 @@ $err_url = 'db_details.php3'
* Ensures the database exists (else move to the "parent" script) and diplays
* headers
*/
// Not a valid db name -> back to the welcome page
if (!empty($db)) {
$is_db = @mysql_select_db($db);
}
if (empty($db) || !$is_db) {
header('Location: ' . $cfgPmaAbsoluteUri . 'main.php3?lang=' . $lang . '&server=' . $server . (isset($message) ? '&message=' . urlencode($message) : '') . '&reload=1');
exit();
}
if (!isset($is_db) || !$is_db) {
// Not a valid db name -> back to the welcome page
if (!empty($db)) {
$is_db = @mysql_select_db($db);
}
if (empty($db) || !$is_db) {
header('Location: ' . $cfgPmaAbsoluteUri . 'main.php3?lang=' . $lang . '&server=' . $server . (isset($message) ? '&message=' . urlencode($message) : '') . '&reload=1');
exit();
}
} // end if (ensures db exists)
// Displays headers
if (!isset($message)) {
$js_to_run = 'functions.js';

View File

@@ -276,13 +276,52 @@ if ($sql_query != '') {
/**
* Go back to the calling script
* MySQL error
*/
$js_to_run = 'functions.js';
require('./header.inc.php3');
if (isset($my_die)) {
$js_to_run = 'functions.js';
include('./header.inc.php3');
mysql_die('', $my_die, '', $err_url);
}
/**
* Go back to the calling script
*/
// Checks for a valid target script
if (isset($table) && $table == '') {
unset($table);
}
if (isset($db) && $db == '') {
unset($db);
}
$is_db = $is_table = FALSE;
if ($goto == 'tbl_properties.php3') {
if (!isset($table)) {
$goto = 'db_details.php3';
} else {
$is_table = @mysql_query('SHOW TABLES LIKE \'' . sql_addslashes($table, TRUE) . '\'');
if (!@mysql_numrows($is_table)) {
$goto = 'db_details.php3';
unset($table);
}
} // end if... else...
}
if ($goto == 'db_details.php3') {
if (isset($table)) {
unset($table);
}
if (!isset($db)) {
$goto = 'main.php3';
} else {
$is_db = @mysql_select_db($db);
if (!$is_db) {
$goto = 'main.php3';
unset($db);
}
} // end if... else...
}
// Defines the message to be displayed
if (!empty($id_bookmark) && $action_bookmark == 2) {
$message = $strBookmarkDeleted;
} else if (!isset($sql_query_cpy)) {
@@ -292,5 +331,12 @@ if (!empty($id_bookmark) && $action_bookmark == 2) {
} else {
$message = $strSuccess;
}
// Loads to target script
if ($goto == 'db_details.php3' || $goto == 'tbl_properties.php3') {
$js_to_run = 'functions.js';
}
if ($goto != 'main.php3') {
include('./header.inc.php3');
}
require('./' . $goto);
?>

View File

@@ -263,17 +263,6 @@ else {
// No rows returned -> move back to the calling page
if ($num_rows < 1 || $is_affected) {
if (isset($strYes)) {
if (isset($table)
&& (eregi('DROP[[:space:]]+(IF EXISTS[[:space:]]+)?TABLE[[:space:]]+`?' . $table . '`?[[:space:]]*$', $sql_query))) {
unset($table);
}
if (isset($db)
&& (eregi('DROP[[:space:]]+(IF EXISTS[[:space:]]+)?DATABASE[[:space:]]+`?' . $db . '`?[[:space:]]*$', $sql_query))) {
unset($db);
}
}
if ($is_delete) {
$message = $strDeletedRows . '&nbsp;' . $num_rows;
} else if ($is_insert) {
@@ -288,9 +277,40 @@ else {
if (file_exists('./' . $goto)) {
$goto = ereg_replace('\.\.*', '.', $goto);
if ($goto == 'db_details.php3' && !empty($table)) {
// Checks for a valid target script
if (isset($table) && $table == '') {
unset($table);
}
if (isset($db) && $db == '') {
unset($db);
}
$is_db = $is_table = FALSE;
if ($goto == 'tbl_properties.php3') {
if (!isset($table)) {
$goto = 'db_details.php3';
} else {
$is_table = @mysql_query('SHOW TABLES LIKE \'' . sql_addslashes($table, TRUE) . '\'');
if (!@mysql_numrows($is_table)) {
$goto = 'db_details.php3';
unset($table);
}
} // end if... else...
}
if ($goto == 'db_details.php3') {
if (isset($table)) {
unset($table);
}
if (!isset($db)) {
$goto = 'main.php3';
} else {
$is_db = @mysql_select_db($db);
if (!$is_db) {
$goto = 'main.php3';
unset($db);
}
} // end if... else...
}
// Loads to target script
if ($goto == 'db_details.php3' || $goto == 'tbl_properties.php3') {
$js_to_run = 'functions.js';
}