From 70b1080775c99205f9ea52ee096d9b770e6d8409 Mon Sep 17 00:00:00 2001 From: Lionel Laffineur Date: Mon, 4 Dec 2023 22:03:59 +0100 Subject: [PATCH] Fixed warnings of alter table --- adminer/create.inc.php | 28 ++++++++++++++++++++-------- adminer/include/bootstrap.inc.php | 2 +- adminer/include/editing.inc.php | 29 ++++++++++++++++------------- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/adminer/create.inc.php b/adminer/create.inc.php index 03acfe42..206a7066 100644 --- a/adminer/create.inc.php +++ b/adminer/create.inc.php @@ -22,17 +22,26 @@ if ($TABLE != "") { } $row = $_POST; -$row["fields"] = (array) $row["fields"]; -if ($row["auto_increment_col"]) { +if (isset($row["fields"])) { + $row["fields"] = (array) $row["fields"]; +} +if (isset($row["auto_increment_col"]) && $row["auto_increment_col"]) { $row["fields"][$row["auto_increment_col"]]["auto_increment"] = true; } if ($_POST) { - set_adminer_settings(array("comments" => $_POST["comments"], "defaults" => $_POST["defaults"])); + $array = []; + if (isset($_POST["comments"])) { + $array["comments"] = $_POST["comments"]; + } + if (isset($_POST["defaults"])) { + $array["defaults"] = $_POST["defaults"]; + } + set_adminer_settings($array); } if ($_POST && !process_fields($row["fields"]) && !$error) { - if ($_POST["drop"]) { + if (isset($_POST["drop"]) && $_POST["drop"]) { queries_redirect(substr(ME, 0, -1), lang('Table has been dropped.'), drop_tables(array($TABLE))); } else { $fields = array(); @@ -43,10 +52,13 @@ if ($_POST && !process_fields($row["fields"]) && !$error) { $after = " FIRST"; foreach ($row["fields"] as $key => $field) { - $foreign_key = $foreign_keys[$field["type"]]; + $foreign_key = null; + if (isset($field["type"]) && isset($foreign_keys[$field["type"]])) { + $foreign_key = $foreign_keys[$field["type"]]; + } $type_field = ($foreign_key !== null ? $referencable_primary[$foreign_key] : $field); //! can collide with user defined type if ($field["field"] != "") { - if (!$field["has_default"]) { + if (isset($field["has_default"]) === false || !$field["has_default"]) { $field["default"] = null; } if ($key == $row["auto_increment_col"]) { @@ -123,7 +135,7 @@ page_header(($TABLE != "" ? lang('Alter table') : lang('Create table')), $error, if (!$_POST) { $row = array( - "Engine" => $_COOKIE["adminer_engine"], + "Engine" => (isset($_COOKIE["adminer_engine"]) ? $_COOKIE["adminer_engine"] : null), "fields" => array(array("field" => "", "type" => (isset($types["int"]) ? "int" : (isset($types["integer"]) ? "integer" : "")), "on_update" => "")), "partition_names" => array(""), ); @@ -132,7 +144,7 @@ if (!$_POST) { $row = $table_status; $row["name"] = $TABLE; $row["fields"] = array(); - if (!$_GET["auto_increment"]) { // don't prefill by original Auto_increment for the sake of performance and not reusing deleted ids + if (isset($_GET["auto_increment"]) === false || !$_GET["auto_increment"]) { // don't prefill by original Auto_increment for the sake of performance and not reusing deleted ids $row["Auto_increment"] = ""; } foreach ($orig_fields as $field) { diff --git a/adminer/include/bootstrap.inc.php b/adminer/include/bootstrap.inc.php index ef72d915..86dac65f 100644 --- a/adminer/include/bootstrap.inc.php +++ b/adminer/include/bootstrap.inc.php @@ -44,7 +44,7 @@ global $adminer, $connection, $driver, $drivers, $edit_functions, $enum_length, if (!$_SERVER["REQUEST_URI"]) { // IIS 5 compatibility $_SERVER["REQUEST_URI"] = $_SERVER["ORIG_PATH_INFO"]; } -if (!strpos($_SERVER["REQUEST_URI"], '?') && $_SERVER["QUERY_STRING"] != "") { // IIS 7 compatibility +if (isset($_SERVER["QUERY_STRING"]) && !strpos($_SERVER["REQUEST_URI"], '?') && $_SERVER["QUERY_STRING"] != "") { // IIS 7 compatibility $_SERVER["REQUEST_URI"] .= "?$_SERVER[QUERY_STRING]"; } if (isset($_SERVER["HTTP_X_FORWARDED_PREFIX"]) && $_SERVER["HTTP_X_FORWARDED_PREFIX"]) { diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php index f94a18f8..8c559ffe 100644 --- a/adminer/include/editing.inc.php +++ b/adminer/include/editing.inc.php @@ -105,7 +105,7 @@ function referencable_primary($self) { if ($table_name != $self && fk_support($table)) { foreach (fields($table_name) as $field) { if ($field["primary"]) { - if ($return[$table_name]) { // multi column primary key + if (isset($return[$table_name]) && $return[$table_name]) { // multi column primary key unset($return[$table_name]); break; } @@ -121,7 +121,10 @@ function referencable_primary($self) { * @return array */ function adminer_settings() { - parse_str($_COOKIE["adminer_settings"], $settings); + $settings = []; + if (isset($_COOKIE["adminer_settings"])) { + parse_str($_COOKIE["adminer_settings"], $settings); + } return $settings; } @@ -131,7 +134,7 @@ function adminer_settings() { */ function adminer_setting($key) { $settings = adminer_settings(); - return $settings[$key]; + return (isset($settings[$key]) ? $settings[$key] : null); } /** Store settings to a cookie @@ -183,10 +186,10 @@ if ($foreign_keys) { } echo optionlist(array_merge($extra_types, $structured_types), $type); ?>" size="3" aria-labelledby="label-length">