diff options
| author | Savetheinternet <savetheinternet@n0v4.com> | 2011-02-16 19:59:13 +1100 |
|---|---|---|
| committer | Savetheinternet <savetheinternet@n0v4.com> | 2011-02-16 19:59:13 +1100 |
| commit | a655d930d014527f8bc05afdc75d3187b6b14117 (patch) | |
| tree | aeff703996ae847aea9e57170cab66ceecd0843f | |
| parent | 8d6c3d655dc92ee00c5c48f15b818cf0b55d8137 (diff) | |
Return to page if mod clicked on a link to a moderator page but was not logged in
| -rw-r--r-- | inc/display.php | 5 | ||||
| -rw-r--r-- | mod.php | 15 | ||||
| -rw-r--r-- | templates/login.html | 3 |
3 files changed, 14 insertions, 9 deletions
diff --git a/inc/display.php b/inc/display.php index acf77e39..9186b47a 100644 --- a/inc/display.php +++ b/inc/display.php @@ -37,7 +37,7 @@ ))); } - function loginForm($error=false, $username=false) { + function loginForm($error=false, $username=false, $redirect=false) { global $config; if(function_exists('sql_close')) sql_close(); @@ -47,7 +47,8 @@ 'body'=>Element('login.html', Array( 'index'=>$config['root'], 'error'=>$error, - 'username'=>$username + 'username'=>$username, + 'redirect'=>$redirect ) ) ))); @@ -25,6 +25,8 @@ $_POST = strip_array($_POST); } + $query = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : ''; + // If not logged in if(!$mod) { if(isset($_POST['login'])) { @@ -33,11 +35,11 @@ !isset($_POST['password']) || empty($_POST['username']) || empty($_POST['password']) - ) loginForm($config['error']['invalid'], $_POST['username']); + ) loginForm($config['error']['invalid'], $_POST['username'], '?' . $query); if(!login($_POST['username'], $_POST['password'])) - loginForm($config['error']['invalid'], $_POST['username']); + loginForm($config['error']['invalid'], $_POST['username'], '?' . $query); modLog("Logged in."); @@ -46,16 +48,17 @@ setCookies(); // Redirect - header('Location: ?' . $config['mod']['default'], true, $config['redirect_http']); + if(isset($_POST['redirect'])) + header('Location: ' . $_POST['redirect'], true, $config['redirect_http']); + else + header('Location: ?' . $config['mod']['default'], true, $config['redirect_http']); // Close connection sql_close(); } else { - loginForm(); + loginForm(false, false, '?' . $query); } } else { - $query = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : ''; - // A sort of "cache" // Stops calling preg_quote and str_replace when not needed; only does it once $regex = Array( diff --git a/templates/login.html b/templates/login.html index 312bd6e9..e9d559f7 100644 --- a/templates/login.html +++ b/templates/login.html @@ -1,6 +1,7 @@ -<center>
+<center>
{error?<h2>{error}</h2>}
<form action="" method="post">
+ {redirect?<input type="hidden" name="redirect" value="{redirect}" />}
<table style="margin-top:25px;">
<tr>
<th>
|
