diff --git a/adminer/include/auth.inc.php b/adminer/include/auth.inc.php index 66abb111..ebf3b63f 100644 --- a/adminer/include/auth.inc.php +++ b/adminer/include/auth.inc.php @@ -61,8 +61,8 @@ function check_invalid_login() { break; } } - $invalid = ($invalids ? $invalids[$adminer->bruteForceKey()] : array()); - $next_attempt = (idx($invalid, 1) > 29 ? $invalid[0] - time() : 0); // allow 30 invalid attempts + $invalid = idx($invalids, $adminer->bruteForceKey(), array()); + $next_attempt = ($invalid[1] > 29 ? $invalid[0] - time() : 0); // allow 30 invalid attempts if ($next_attempt > 0) { //! do the same with permanent login auth_error(lang('Too many unsuccessful logins, try again in %d minute(s).', ceil($next_attempt / 60))); } diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index 95cdde83..7292c4af 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -66,6 +66,7 @@ function escape_string($val) { } /** Get a possibly missing item from a possibly missing array +* idx($row, $key) is better than $row[$key] ?? null because it reports error for undefined $row * @param array|null * @param string|int * @param mixed @@ -312,7 +313,7 @@ function where($where, $fields = array()) { foreach ((array) $where["where"] as $key => $val) { $key = bracket_escape($key, 1); // 1 - back $column = escape_key($key); - $field = ($fields ? $fields[$key] : array()); + $field = idx($fields, $key, array()); $field_type = $field["type"]; $return[] = $column . (JUSH == "sql" && $field_type == "json" ? " = CAST(" . q($val) . " AS JSON)" diff --git a/adminer/sql.inc.php b/adminer/sql.inc.php index 3bce84d1..6fdc849e 100644 --- a/adminer/sql.inc.php +++ b/adminer/sql.inc.php @@ -230,7 +230,7 @@ if (!isset($_GET["import"])) { } elseif ($_GET["history"] == "all") { $q = $history; } elseif ($_GET["history"] != "") { - $q = $history[$_GET["history"]][0]; + $q = idx($history[$_GET["history"]], 0); } echo "
"; textarea("query", $q, 20); diff --git a/plugins/codemirror.php b/plugins/codemirror.php index 6d108a65..f7c05070 100644 --- a/plugins/codemirror.php +++ b/plugins/codemirror.php @@ -72,7 +72,7 @@ for (const el of qsa('textarea')) { hintOptions: { completeSingle: false, tables: , - defaultTable: + defaultTable: } }); cm.setSize(width, height); diff --git a/plugins/drivers/imap.php b/plugins/drivers/imap.php index 0d236a32..9583ac69 100644 --- a/plugins/drivers/imap.php +++ b/plugins/drivers/imap.php @@ -122,7 +122,7 @@ if (isset($_GET["imap"])) { function __construct($result) { $this->result = $result; $this->num_rows = count($result); - $this->fields = ($result ? array_keys(reset($result)) : array()); + $this->fields = array_keys(idx($result, 0, array())); } function fetch_assoc() {