diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index ebb58e6b..5e2f3adf 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -404,8 +404,9 @@ username.form['driver'].onchange(); */ function messageQuery($query) { global $jush; + static $count = 0; restart_session(); - $id = "sql-" . count($_SESSION["messages"]); + $id = "sql-" . ($count++); $history = &get_session("queries"); $history[$_GET["db"]][] = (strlen($query) > 1e6 // not DB - reset in drop database ? ereg_replace('[\x80-\xFF]+$', '', substr($query, 0, 1e6)) . "\n..." // [\x80-\xFF] - valid UTF-8, \n - can end by one-line comment diff --git a/adminer/include/design.inc.php b/adminer/include/design.inc.php index f22dade9..c347271e 100644 --- a/adminer/include/design.inc.php +++ b/adminer/include/design.inc.php @@ -64,9 +64,11 @@ function page_header($title, $error = "", $breadcrumb = array(), $title2 = "") { } echo "

$title_all

\n"; restart_session(); - if ($_SESSION["messages"]) { - echo "
" . implode("
\n
", $_SESSION["messages"]) . "
\n"; - $_SESSION["messages"] = array(); + $uri = preg_replace('~^[^?]*/~', '', $_SERVER["REQUEST_URI"]); + $messages = $_SESSION["messages"][$uri]; + if ($messages) { + echo "
" . implode("
\n
", $messages) . "
\n"; + unset($_SESSION["messages"][$uri]); } $databases = &get_session("dbs"); if (DB != "" && $databases && !in_array(DB, $databases, true)) { diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php index 32658ebf..b9ca4147 100644 --- a/adminer/include/editing.inc.php +++ b/adminer/include/editing.inc.php @@ -349,7 +349,7 @@ function drop_create($drop, $create, $location, $message_drop, $message_alter, $ $created = queries($create); if (!queries_redirect($location, ($name != "" ? $message_alter : $message_create), $created) && $dropped) { restart_session(); - $_SESSION["messages"][] = $message_drop; + $_SESSION["messages"][preg_replace('~^[^?]*/~', '', $_SERVER["REQUEST_URI"])][] = $message_drop; } return $dropped; } diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index aff62aac..54d504ef 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -384,7 +384,7 @@ function is_ajax() { function redirect($location, $message = null) { if (isset($message)) { restart_session(); - $_SESSION["messages"][] = $message; + $_SESSION["messages"][preg_replace('~^[^?]*/~', '', $location)][] = $message; } if (isset($location)) { if ($location == "") {