From 42bc448e3c327cb52b3ab48e27c88f2fc1a8a156 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Tue, 3 Jul 2007 06:48:18 +0000 Subject: [PATCH] Redirect function git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@15 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- auth.inc.php | 2 +- create.inc.php | 4 +--- database.inc.php | 17 ++++------------- edit.inc.php | 4 +--- functions.inc.php | 11 +++++++++++ sql.inc.php | 4 +--- 6 files changed, 19 insertions(+), 23 deletions(-) diff --git a/auth.inc.php b/auth.inc.php index 66f1857d..cdd19eb1 100644 --- a/auth.inc.php +++ b/auth.inc.php @@ -2,7 +2,7 @@ if (isset($_POST["server"])) { $_SESSION["username"] = $_POST["username"]; $_SESSION["password"] = $_POST["password"]; - header("Location: " . ((string) $_GET["server"] === $_POST["server"] ? preg_replace('~(\\?)logout=&|[?&]logout=~', '\\1', $_SERVER["REQUEST_URI"]) : preg_replace('~^[^?]*/([^?]*).*~', '\\1' . (strlen($_POST["server"]) ? '?server=' . urlencode($_POST["server"]) : '') . (SID ? (strlen($_POST["server"]) ? "&" : "?") . SID : ""), $_SERVER["REQUEST_URI"]))); + header("Location: " . ((string) $_GET["server"] === $_POST["server"] ? preg_replace('~(\\?)logout=&|[?&]logout=~', '\\1', $_SERVER["REQUEST_URI"]) : preg_replace('~^[^?]*/([^?]*).*~', '\\1' . (strlen($_POST["server"]) ? '?server=' . urlencode($_POST["server"]) : '') . (strlen(SID) ? (strlen($_POST["server"]) ? "&" : "?") . SID : ""), $_SERVER["REQUEST_URI"]))); exit; } elseif (isset($_GET["logout"])) { unset($_SESSION["username"]); diff --git a/create.inc.php b/create.inc.php index e11204b8..5d5fbc7c 100644 --- a/create.inc.php +++ b/create.inc.php @@ -23,9 +23,7 @@ if ($_POST) { } } if (mysql_query($query)) { - $_SESSION["message"] = $message; - header("Location: " . ($_POST["drop"] ? substr($SELF, 0, -1) : $SELF . "table=" . urlencode($_POST["name"])) . (SID ? "&" . SID : "")); - exit; + redirect(($_POST["drop"] ? substr($SELF, 0, -1) : $SELF . "table=" . urlencode($_POST["name"])), $message); } $error = mysql_error(); } diff --git a/database.inc.php b/database.inc.php index 0129b7eb..1c4091f6 100644 --- a/database.inc.php +++ b/database.inc.php @@ -2,17 +2,12 @@ if ($_POST) { if ($_POST["drop"]) { if (mysql_query("DROP DATABASE " . idf_escape($_GET["db"]))) { - $_SESSION["message"] = lang('Database has been dropped.'); - $location = substr(preg_replace('~(\\?)db=[^&]*&|&db=[^&]*~', '\\1', $SELF) . (SID ? SID . "&" : ""), 0, -1); - header("Location: " . (strlen($location) ? $location : ".")); - exit; + redirect(substr(preg_replace('~(\\?)db=[^&]*&|&db=[^&]*~', '\\1', $SELF), 0, -1), lang('Database has been dropped.')); } } elseif ($_GET["db"] !== $_POST["name"]) { if (mysql_query("CREATE DATABASE " . idf_escape($_POST["name"]) . ($_POST["collation"] ? " COLLATE '" . mysql_real_escape_string($_POST["collation"]) . "'" : ""))) { if (!strlen($_GET["db"])) { - $_SESSION["message"] = lang('Database has been created.'); - header("Location: " . substr(preg_replace('~(\\?)db=[^&]*&|&db=[^&]*~', '\\1', $SELF) . "db=" . urlencode($_POST["name"]) . "&" . (SID ? SID . "&" : ""), 0, -1)); - exit; + redirect(preg_replace('~(\\?)db=[^&]*&|&db=[^&]*~', '\\1', $SELF) . "db=" . urlencode($_POST["name"]), lang('Database has been created.')); } $result = mysql_query("SHOW TABLES"); while ($row = mysql_fetch_row($result)) { @@ -23,15 +18,11 @@ if ($_POST) { mysql_free_result($result); if (!$row) { mysql_query("DROP DATABASE " . idf_escape($_GET["db"])); - $_SESSION["message"] = lang('Database has been renamed.'); - header("Location: " . substr(preg_replace('~(\\?)db=[^&]*&|&db=[^&]*~', '\\1', $SELF) . "db=" . urlencode($_POST["name"]) . "&" . (SID ? SID . "&" : ""), 0, -1)); - exit; + redirect(preg_replace('~(\\?)db=[^&]*&|&db=[^&]*~', '\\1', $SELF) . "db=" . urlencode($_POST["name"]), lang('Database has been renamed.')); } } } elseif (!$_POST["collation"] || mysql_query("ALTER DATABASE " . idf_escape($_POST["name"]) . " COLLATE '" . mysql_real_escape_string($_POST["collation"]) . "'")) { - $_SESSION["message"] = ($_POST["collation"] ? lang('Database has been altered.') : ''); - header("Location: " . substr($SELF . (SID ? SID . "&" : ""), 0, -1)); - exit; + redirect(substr($SELF, 0, -1), ($_POST["collation"] ? lang('Database has been altered.') : null)); } $eror = mysql_error(); } diff --git a/edit.inc.php b/edit.inc.php index f918d4e7..593cf4ce 100644 --- a/edit.inc.php +++ b/edit.inc.php @@ -27,9 +27,7 @@ if ($_POST) { } } if (mysql_query($query)) { - $_SESSION["message"] = $message; - header("Location: " . $SELF . "select=" . urlencode($_GET["edit"]) . (SID ? "&" . SID : "")); - exit; + redirect($SELF . "select=" . urlencode($_GET["edit"]), $message); } $error = mysql_error(); } diff --git a/functions.inc.php b/functions.inc.php index 6ad21743..b7f806c5 100644 --- a/functions.inc.php +++ b/functions.inc.php @@ -119,6 +119,17 @@ function engines() { return $return; } +function redirect($location, $message = null) { + if (isset($message)) { + $_SESSION["message"] = $message; + } + if (strlen(SID)) { + $location .= (strpos($location, "?") === false ? "?" : "&") . SID; + } + header("Location: " . (strlen($location) ? $location : ".")); + exit; +} + if (get_magic_quotes_gpc()) { $process = array(&$_GET, &$_POST); while (list($key, $val) = each($process)) { diff --git a/sql.inc.php b/sql.inc.php index 77c14e8b..d2bad676 100644 --- a/sql.inc.php +++ b/sql.inc.php @@ -2,9 +2,7 @@ if ($_POST) { $result = mysql_query($_POST["query"]); //! multiple commands if ($result === true) { - $_SESSION["message"] = sprintf(lang('Query executed OK, %d row(s) affected.'), mysql_affected_rows()); - header("Location: " . $SELF . "sql=" . (SID ? "&" . SID : "")); - exit; + redirect($SELF . "sql=", sprintf(lang('Query executed OK, %d row(s) affected.'), mysql_affected_rows())); } $error = mysql_error(); }