From 8ab6fffe7484133d635ba1c292b479bbf64e93e7 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Thu, 17 Feb 2011 11:43:21 +0100 Subject: [PATCH] Centralize dump_headers --- adminer/dump.inc.php | 2 +- adminer/include/adminer.inc.php | 9 ++------- adminer/include/functions.inc.php | 16 ++++++++++++++++ adminer/select.inc.php | 2 +- adminer/sql.inc.php | 2 +- editor/include/adminer.inc.php | 5 +---- 6 files changed, 22 insertions(+), 14 deletions(-) diff --git a/adminer/dump.inc.php b/adminer/dump.inc.php index 61f2e6fc..56f05f89 100644 --- a/adminer/dump.inc.php +++ b/adminer/dump.inc.php @@ -7,7 +7,7 @@ if ($_POST) { $cookie .= "&$key=" . urlencode($_POST[$key]); } cookie("adminer_export", substr($cookie, 1)); - $ext = $adminer->dumpHeaders(($TABLE != "" ? $TABLE : DB), (DB == "" || count((array) $_POST["tables"] + (array) $_POST["data"]) > 1)); + $ext = dump_headers(($TABLE != "" ? $TABLE : DB), (DB == "" || count((array) $_POST["tables"] + (array) $_POST["data"]) > 1)); $is_sql = ($_POST["format"] == "sql"); if ($is_sql) { echo "-- Adminer $VERSION " . $drivers[DRIVER] . " dump diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index de991560..cd66cb3a 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -670,7 +670,6 @@ DROP PROCEDURE adminer_alter; * @return string extension */ function dumpHeaders($identifier, $multi_table = false) { - $filename = ($identifier != "" ? friendly_url($identifier) : "adminer"); $output = $_POST["output"]; $ext = ($_POST["format"] == "sql" ? "sql" : ($multi_table ? "tar" : "csv")); // multiple CSV packed to TAR header("Content-Type: " . @@ -679,14 +678,10 @@ DROP PROCEDURE adminer_alter; ($ext == "tar" ? "application/x-tar" : ($ext == "sql" || $output != "file" ? "text/plain" : "text/csv") . "; charset=utf-8" )))); - if ($output != "text") { - header("Content-Disposition: attachment; filename=$filename.$ext" . ($output != "file" && !ereg('[^0-9a-z]', $output) ? ".$output" : "")); - } - session_write_close(); - if ($_POST["output"] == "bz2") { + if ($output == "bz2") { ob_start('bzcompress', 1e6); } - if ($_POST["output"] == "gz") { + if ($output == "gz") { ob_start('gzencode', 1e6); } return $ext; diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index f82decc8..e1c2ffe1 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -754,6 +754,22 @@ function search_tables() { echo ($found ? "" : "

" . lang('No tables.')) . "\n"; } +/** Send headers for export +* @param string +* @param bool +* @return string extension +*/ +function dump_headers($identifier, $multi_table = false) { + global $adminer; + $return = $adminer->dumpHeaders($identifier, $multi_table); + $output = $_POST["output"]; + if ($output != "text") { + header("Content-Disposition: attachment; filename=" . ($identifier != "" ? friendly_url($identifier) : "dump") . ".$return" . ($output != "file" && !ereg('[^0-9a-z]', $output) ? ".$output" : "")); + } + session_write_close(); + return $return; +} + /** Print CSV row * @param array * @return null diff --git a/adminer/select.inc.php b/adminer/select.inc.php index 94850652..4d2f9b47 100644 --- a/adminer/select.inc.php +++ b/adminer/select.inc.php @@ -54,7 +54,7 @@ if ($_POST && !$error) { } } if ($_POST["export"]) { - $adminer->dumpHeaders($TABLE); + dump_headers($TABLE); $adminer->dumpTable($TABLE, ""); if (!is_array($_POST["check"]) || $unselected === array()) { $where2 = $where; diff --git a/adminer/sql.inc.php b/adminer/sql.inc.php index 48bca21e..553f764f 100644 --- a/adminer/sql.inc.php +++ b/adminer/sql.inc.php @@ -1,6 +1,6 @@ dumpHeaders("sql"); + dump_headers("sql"); $adminer->dumpTable("", ""); $adminer->dumpData("", "table", $_POST["query"]); exit; diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php index fddcc625..066eb444 100644 --- a/editor/include/adminer.inc.php +++ b/editor/include/adminer.inc.php @@ -463,12 +463,9 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5 } } - function dumpHeaders($identifier) { - $filename = ($identifier != "" ? friendly_url($identifier) : "dump"); + function dumpHeaders($identifier, $multi_table = false) { $ext = "csv"; header("Content-Type: text/csv; charset=utf-8"); - header("Content-Disposition: attachment; filename=$filename.$ext"); - session_write_close(); return $ext; } -- 2.39.5