diff --git a/adminer/create.inc.php b/adminer/create.inc.php index 9f41f38c..ed9c74d7 100644 --- a/adminer/create.inc.php +++ b/adminer/create.inc.php @@ -112,7 +112,7 @@ if ($_POST) { $row["fields"][] = $field; } if ($dbh->server_info >= 5.1) { - $from = "FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = " . $dbh->quote($_GET["db"]) . " AND TABLE_NAME = " . $dbh->quote($_GET["create"]); + $from = "FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = " . $dbh->quote(DB) . " AND TABLE_NAME = " . $dbh->quote($_GET["create"]); $result = $dbh->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $from ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1"); list($row["partition_by"], $row["partitions"], $row["partition"]) = $result->fetch_row(); $row["partition_names"] = array(); diff --git a/adminer/database.inc.php b/adminer/database.inc.php index 6563e977..1e3602fa 100644 --- a/adminer/database.inc.php +++ b/adminer/database.inc.php @@ -2,8 +2,8 @@ if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP changes add.x to add_x if ($_POST["drop"]) { unset($_SESSION["databases"][$_GET["server"]]); - query_redirect("DROP DATABASE " . idf_escape($_GET["db"]), substr(preg_replace('~db=[^&]*&~', '', ME), 0, -1), lang('Database has been dropped.')); - } elseif ($_GET["db"] !== $_POST["name"]) { + query_redirect("DROP DATABASE " . idf_escape(DB), substr(preg_replace('~db=[^&]*&~', '', ME), 0, -1), lang('Database has been dropped.')); + } elseif (DB !== $_POST["name"]) { // create or rename database unset($_SESSION["databases"][$_GET["server"]]); // clear cache $dbs = explode("\n", str_replace("\r", "", $_POST["name"])); @@ -17,7 +17,7 @@ if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP c $last = $db; } } - if (query_redirect(queries(), ME . "db=" . urlencode($last), lang('Database has been created.'), !strlen($_GET["db"]), false, $failed)) { + if (query_redirect(queries(), ME . "db=" . urlencode($last), lang('Database has been created.'), !strlen(DB), false, $failed)) { $result = $dbh->query("SHOW TABLES"); while ($row = $result->fetch_row()) { if (!queries("RENAME TABLE " . idf_escape($row[0]) . " TO " . idf_escape($_POST["name"]) . "." . idf_escape($row[0]))) { @@ -25,7 +25,7 @@ if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP c } } if (!$row) { - queries("DROP DATABASE " . idf_escape($_GET["db"])); + queries("DROP DATABASE " . idf_escape(DB)); } query_redirect(queries(), preg_replace('~db=[^&]*&~', '', ME) . "db=" . urlencode($_POST["name"]), lang('Database has been renamed.'), !$row, false, $row); } @@ -38,15 +38,15 @@ if ($_POST && !$error && !isset($_POST["add_x"])) { // add is an image and PHP c } } -page_header(strlen($_GET["db"]) ? lang('Alter database') : lang('Create database'), $error, array(), $_GET["db"]); +page_header(strlen(DB) ? lang('Alter database') : lang('Create database'), $error, array(), DB); $collations = collations(); -$name = $_GET["db"]; +$name = DB; $collate = array(); if ($_POST) { $name = $_POST["name"]; $collate = $_POST["collation"]; -} elseif (!strlen($_GET["db"])) { +} elseif (!strlen(DB)) { // propose database name with limited privileges $result = $dbh->query("SHOW GRANTS"); while ($row = $result->fetch_row()) { @@ -55,7 +55,7 @@ if ($_POST) { break; } } -} elseif (($result = $dbh->query("SHOW CREATE DATABASE " . idf_escape($_GET["db"])))) { +} elseif (($result = $dbh->query("SHOW CREATE DATABASE " . idf_escape(DB)))) { $create = $dbh->result($result, 1); if (preg_match('~ COLLATE ([^ ]+)~', $create, $match)) { $collate = $match[1]; @@ -76,7 +76,7 @@ if ($_POST) { \n"; } elseif (!$_POST["add_x"]) { echo "\n"; diff --git a/adminer/db.inc.php b/adminer/db.inc.php index b72a68ca..ee1ad064 100644 --- a/adminer/db.inc.php +++ b/adminer/db.inc.php @@ -38,7 +38,7 @@ if ($tables_views && !$error) { query_redirect(queries(), substr(ME, 0, -1), $message, $result, false, !$result); } -page_header(lang('Database') . ": " . h($_GET["db"]), $error, false); +page_header(lang('Database') . ": " . h(DB), $error, false); echo '

' . lang('Alter database') . "\n"; echo '

' . lang('Database schema') . "\n"; @@ -69,7 +69,7 @@ if (!$table_status) { echo "

\n"; $dbs = get_databases(); if (count($dbs) != 1) { - $db = (isset($_POST["target"]) ? $_POST["target"] : $_GET["db"]); + $db = (isset($_POST["target"]) ? $_POST["target"] : DB); echo "

" . lang('Move to other database') . ($dbs ? ": " : ': ') . " \n"; } echo "\n"; @@ -78,7 +78,7 @@ if (!$table_status) { if ($dbh->server_info >= 5) { echo '

' . lang('Create view') . "\n"; echo "

" . lang('Routines') . "

\n"; - $result = $dbh->query("SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = " . $dbh->quote($_GET["db"])); + $result = $dbh->query("SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = " . $dbh->quote(DB)); if ($result->num_rows) { echo "\n"; while ($row = $result->fetch_assoc()) { diff --git a/adminer/dump.inc.php b/adminer/dump.inc.php index 5a55f985..e295dc31 100644 --- a/adminer/dump.inc.php +++ b/adminer/dump.inc.php @@ -25,7 +25,7 @@ function dump_triggers($table, $style) { } if ($_POST) { - $ext = dump_headers((strlen($_GET["dump"]) ? $_GET["dump"] : $_GET["db"]), (!strlen($_GET["db"]) || count((array) $_POST["tables"] + (array) $_POST["data"]) > 1)); + $ext = dump_headers((strlen($_GET["dump"]) ? $_GET["dump"] : DB), (!strlen(DB) || count((array) $_POST["tables"] + (array) $_POST["data"]) > 1)); if ($_POST["format"] == "sql") { dump("SET NAMES utf8; SET foreign_key_checks = 0; @@ -36,7 +36,7 @@ SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; } $style = $_POST["db_style"]; - foreach ((strlen($_GET["db"]) ? array($_GET["db"]) : (array) $_POST["databases"]) as $db) { + foreach ((strlen(DB) ? array(DB) : (array) $_POST["databases"]) as $db) { if ($dbh->select_db($db)) { if ($_POST["format"] == "sql" && ereg('CREATE', $style) && ($result = $dbh->query("SHOW CREATE DATABASE " . idf_escape($db)))) { if ($style == "DROP+CREATE") { @@ -72,8 +72,8 @@ SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; if ($_POST["table_style"] || $_POST["data_style"]) { $views = array(); foreach (table_status() as $row) { - $table = (!strlen($_GET["db"]) || in_array($row["Name"], (array) $_POST["tables"])); - $data = (!strlen($_GET["db"]) || in_array($row["Name"], (array) $_POST["data"])); + $table = (!strlen(DB) || in_array($row["Name"], (array) $_POST["tables"])); + $data = (!strlen(DB) || in_array($row["Name"], (array) $_POST["data"])); if ($table || $data) { if (isset($row["Engine"])) { if ($ext == "tar") { @@ -87,7 +87,7 @@ SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; dump_triggers($row["Name"], $_POST["table_style"]); } if ($ext == "tar") { - dump(tar_file((strlen($_GET["db"]) ? "" : "$db/") . "$row[Name].csv", ob_get_clean())); + dump(tar_file((strlen(DB) ? "" : "$db/") . "$row[Name].csv", ob_get_clean())); } elseif ($_POST["format"] == "sql") { dump("\n"); } @@ -150,7 +150,7 @@ DROP PROCEDURE adminer_alter; exit; } -page_header(lang('Export'), "", (strlen($_GET["export"]) ? array("table" => $_GET["export"]) : array()), $_GET["db"]); +page_header(lang('Export'), "", (strlen($_GET["export"]) ? array("table" => $_GET["export"]) : array()), DB); ?> @@ -166,7 +166,7 @@ if ($dbh->server_info >= 5) { echo "
" . lang('Output') . "$dump_output\n"; // token is not needed but checked in bootstrap for all POST data echo "
" . lang('Format') . "$dump_format\n"; echo "
" . lang('Compression') . "" . ($dump_compress ? $dump_compress : lang('None of the supported PHP extensions (%s) are available.', 'zlib, bz2')) . "\n"; -echo "
" . lang('Database') . "\n"; +echo "
" . lang('Database') . "\n"; echo "
" . lang('Tables') . "\n"; echo "
" . lang('Data') . "\n"; ?> @@ -175,7 +175,7 @@ echo "
" . lang('Data') . ""; echo "
"; diff --git a/adminer/event.inc.php b/adminer/event.inc.php index 8a5f4e42..858c421d 100644 --- a/adminer/event.inc.php +++ b/adminer/event.inc.php @@ -29,7 +29,7 @@ $row = array(); if ($_POST) { $row = $_POST; } elseif (strlen($_GET["event"])) { - $result = $dbh->query("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = " . $dbh->quote($_GET["db"]) . " AND EVENT_NAME = " . $dbh->quote($_GET["event"])); + $result = $dbh->query("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = " . $dbh->quote(DB) . " AND EVENT_NAME = " . $dbh->quote($_GET["event"])); $row = $result->fetch_assoc(); } ?> diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index d4bd60f6..1c8002f0 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -22,8 +22,8 @@ class Adminer { * @return string */ function database() { - // should be used everywhere instead of $_GET["db"] - return $_GET["db"]; + // should be used everywhere instead of DB + return DB; } /** Print login form @@ -336,8 +336,8 @@ class Adminer { */ function messageQuery($query) { $id = "sql-" . count($_SESSION["messages"]); - $_SESSION["history"][$_GET["server"]][$_GET["db"]][] = $query; - return " " . lang('SQL command') . "'; + $_SESSION["history"][$_GET["server"]][DB][] = $query; + return " " . lang('SQL command') . "'; } /** Functions displayed in edit form @@ -427,9 +427,9 @@ class Adminer {

"> - + -"> + @@ -438,7 +438,7 @@ class Adminer {

query("SHOW TABLES"); if (!$result) { echo "

" . lang('No tables.') . "\n"; diff --git a/adminer/include/bootstrap.inc.php b/adminer/include/bootstrap.inc.php index 9e14eb2a..86d8d108 100644 --- a/adminer/include/bootstrap.inc.php +++ b/adminer/include/bootstrap.inc.php @@ -69,7 +69,8 @@ if (get_magic_quotes_gpc()) { set_magic_quotes_runtime(false); @set_time_limit(0); // @ - can be disabled -define("ME", preg_replace('~^[^?]*/([^?]*).*~', '\\1', $_SERVER["REQUEST_URI"]) . '?' . (strlen($_GET["server"]) ? 'server=' . urlencode($_GET["server"]) . '&' : '') . (strlen($_GET["db"]) ? 'db=' . urlencode($_GET["db"]) . '&' : '')); +define("DB", $_GET["db"]); // for the sake of speed and size +define("ME", preg_replace('~^[^?]*/([^?]*).*~', '\\1', $_SERVER["REQUEST_URI"]) . '?' . (strlen($_GET["server"]) ? 'server=' . urlencode($_GET["server"]) . '&' : '') . (strlen(DB) ? 'db=' . urlencode(DB) . '&' : '')); $on_actions = array("RESTRICT", "CASCADE", "SET NULL", "NO ACTION"); // used in foreign_keys() include "../adminer/include/version.inc.php"; diff --git a/adminer/include/connect.inc.php b/adminer/include/connect.inc.php index 8c160839..550d31a4 100644 --- a/adminer/include/connect.inc.php +++ b/adminer/include/connect.inc.php @@ -1,8 +1,8 @@ select_db($_GET["db"]) : isset($_GET["sql"]) || isset($_GET["dump"]) || isset($_GET["database"]) || isset($_GET["processlist"]) || isset($_GET["privileges"]) || isset($_GET["user"]) || isset($_GET["variables"]))) { - if (strlen($_GET["db"])) { +if (!(strlen(DB) ? $dbh->select_db(DB) : isset($_GET["sql"]) || isset($_GET["dump"]) || isset($_GET["database"]) || isset($_GET["processlist"]) || isset($_GET["privileges"]) || isset($_GET["user"]) || isset($_GET["variables"]))) { + if (strlen(DB)) { unset($_SESSION["databases"][$_GET["server"]]); } connect_error(); // separate function to catch SQLite error diff --git a/adminer/include/design.inc.php b/adminer/include/design.inc.php index 0f16871c..e02b5852 100644 --- a/adminer/include/design.inc.php +++ b/adminer/include/design.inc.php @@ -25,8 +25,8 @@ function page_header($title, $error = "", $breadcrumb = array(), $title2 = "") { $link = substr(preg_replace('~db=[^&]*&~', '', ME), 0, -1); echo '

"; echo (strlen($_GET["server"]) ? '' : ""); - echo (strlen($_GET["db"]) ? '' : ""); // not used in Editor + echo (strlen(DB) ? '' : ""); // not used in Editor echo ''; echo "
\n"; $adminer->selectColumnsPrint($select, $columns); @@ -221,7 +221,7 @@ if (!$columns) { echo ($table_names ? "
" . lang('Relations') : "") . "\n"; foreach ($descriptions as $n => $row) { $unique_idf = implode('&', unique_idf($rows[$n], $indexes)); - echo "" . (count($select) != count($group) || information_schema($_GET["db"]) ? '' : " " . lang('edit') . ""); + echo "" . (count($select) != count($group) || information_schema(DB) ? '' : " " . lang('edit') . ""); foreach ($row as $key => $val) { if (isset($names[$key])) { if (strlen($val) && (!isset($email_fields[$key]) || strlen($email_fields[$key]))) { @@ -297,7 +297,7 @@ if (!$columns) { } echo " (" . lang('%d row(s)', $found_rows) . ') \n"; - echo (information_schema($_GET["db"]) ? "" : "
" . lang('Edit') . "
\n"); + echo (information_schema(DB) ? "" : "
" . lang('Edit') . "
\n"); echo "
" . lang('Export') . "
$dump_output $dump_format $dump_compress
\n"; } echo "
" . lang('CSV Import') . "
\n"; diff --git a/adminer/sql.inc.php b/adminer/sql.inc.php index 440a7c1e..d7e9d39e 100644 --- a/adminer/sql.inc.php +++ b/adminer/sql.inc.php @@ -1,5 +1,5 @@ select_db($_GET["db"]); + $dbh2->select_db(DB); } while (strlen($query)) { if (!$offset && preg_match('~^\\s*DELIMITER\\s+(.+)~i', $query, $match)) { @@ -105,7 +105,7 @@ if (!$error && $_POST) { ?>
-

+

diff --git a/editor/include/connect.inc.php b/editor/include/connect.inc.php index dcff166d..8bc07761 100644 --- a/editor/include/connect.inc.php +++ b/editor/include/connect.inc.php @@ -1,3 +1,2 @@ select_db($adminer->database());