diff --git a/adminer/include/auth.inc.php b/adminer/include/auth.inc.php index e7086937..d174835e 100644 --- a/adminer/include/auth.inc.php +++ b/adminer/include/auth.inc.php @@ -1,14 +1,13 @@ getMessage() : (is_string($connection) ? $connection : lang('Invalid credentials.'))) : (isset($_POST["server"]) ? lang('Session support must be enabled.') : ($_POST ? lang('Session expired, please login again.') : ""))), null); + page_header(lang('Login'), (isset($username) ? h($exception ? $exception->getMessage() : (is_string($connection) ? $connection : lang('Invalid credentials.'))) + : (!$_COOKIE[$session_name] && $_GET[$session_name] && ini_get("session.use_only_cookies") ? lang('Session support must be enabled.') + : (($_COOKIE[$session_name] || $_GET[$session_name]) && !isset($_SESSION["passwords"]) ? lang('Session expired, please login again.') + : ""))), null); echo "
\n"; $adminer->loginForm($username); echo "

\n"; diff --git a/adminer/include/design.inc.php b/adminer/include/design.inc.php index 76562d14..a17bcf2a 100644 --- a/adminer/include/design.inc.php +++ b/adminer/include/design.inc.php @@ -44,6 +44,9 @@ function page_header($title, $error = "", $breadcrumb = array(), $title2 = "") { echo "

" . implode("
\n
", $_SESSION["messages"]) . "
\n"; $_SESSION["messages"] = array(); } + if (!$_POST && !isset($_SESSION["passwords"])) { // used in auth + $_SESSION["passwords"] = array(); + } $databases = &$_SESSION["databases"][$_GET["server"]]; if (strlen(DB) && $databases && !in_array(DB, $databases, true)) { $databases = null; diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index 2556f61e..2b3fc3d1 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -266,7 +266,7 @@ function queries($query = null) { */ function remove_from_uri($param = "") { $param = "($param|" . session_name() . ")"; - return preg_replace("~\\?$param=[^&]*&~", '?', preg_replace("~\\?$param=[^&]*\$|&$param=[^&]*~", '', $_SERVER["REQUEST_URI"])); + return substr(preg_replace("~([?&])$param=[^&]*&~", '\\1', "$_SERVER[REQUEST_URI]&"), 0, -1); } /** Generate page number for pagination