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 == "") {