From 5f8361920190869d36bafe193c4dff8650140064 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Tue, 6 Oct 2009 15:33:48 +0000 Subject: [PATCH] Session management git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1173 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- adminer/include/auth.inc.php | 11 +++++++---- adminer/include/design.inc.php | 3 +++ adminer/include/functions.inc.php | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) 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