From d20cbf14e75f2c6470421d1513c564632c035ff1 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Sun, 16 Mar 2025 15:13:10 +0100 Subject: [PATCH] Remember export setting at SQL command --- adminer/dump.inc.php | 11 +++++------ adminer/include/editing.inc.php | 17 ++++++++++------- adminer/select.inc.php | 6 +++--- adminer/sql.inc.php | 3 ++- changes.txt | 5 +++-- 5 files changed, 23 insertions(+), 19 deletions(-) diff --git a/adminer/dump.inc.php b/adminer/dump.inc.php index a5352429..bdd31c9e 100644 --- a/adminer/dump.inc.php +++ b/adminer/dump.inc.php @@ -4,11 +4,10 @@ namespace Adminer; $TABLE = $_GET["dump"]; if ($_POST && !$error) { - $cookie = ""; - foreach (array("output", "format", "db_style", "types", "routines", "events", "table_style", "auto_increment", "triggers", "data_style") as $key) { - $cookie .= "&$key=" . urlencode($_POST[$key]); - } - cookie("adminer_export", substr($cookie, 1)); + set_adminer_settings( + array_intersect_key($_POST, array_flip(array("output", "format", "db_style", "types", "routines", "events", "table_style", "auto_increment", "triggers", "data_style"))), + "adminer_export" + ); $tables = array_flip((array) $_POST["tables"]) + array_flip((array) $_POST["data"]); $ext = dump_headers( (count($tables) == 1 ? key($tables) : DB), @@ -156,7 +155,7 @@ $data_style = array('', 'TRUNCATE+INSERT', 'INSERT'); if (JUSH == "sql") { //! use insertUpdate() in all drivers $data_style[] = 'INSERT+UPDATE'; } -parse_str($_COOKIE["adminer_export"], $row); +$row = adminer_settings("adminer_export"); if (!$row) { $row = array("output" => "text", "format" => "sql", "db_style" => (DB != "" ? "" : "CREATE"), "table_style" => "DROP+CREATE", "data_style" => "INSERT"); } diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php index eb1c0554..32a6ee64 100644 --- a/adminer/include/editing.inc.php +++ b/adminer/include/editing.inc.php @@ -121,28 +121,31 @@ function referencable_primary($self) { } /** Get settings stored in a cookie +* @param string * @return array */ -function adminer_settings() { - parse_str($_COOKIE["adminer_settings"], $settings); +function adminer_settings($cookie) { + parse_str($_COOKIE[$cookie], $settings); return $settings; } /** Get setting stored in a cookie * @param string -* @return array +* @param string +* @return mixed */ -function adminer_setting($key) { - $settings = adminer_settings(); +function adminer_setting($key, $cookie = "adminer_settings") { + $settings = adminer_settings($cookie); return $settings[$key]; } /** Store settings to a cookie * @param array +* @param string * @return bool */ -function set_adminer_settings($settings) { - return cookie("adminer_settings", http_build_query($settings + adminer_settings())); +function set_adminer_settings($settings, $cookie = "adminer_settings") { + return cookie($cookie, http_build_query($settings + adminer_settings($cookie))); } /** Print SQL