diff options
author | Gordian Edenhofer <gordian.edenhofer@gmail.com> | 2015-06-18 21:28:17 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@archlinux.org> | 2015-06-27 13:04:03 +0200 |
commit | 6395a5d5b86ce4aca75a4eb246db77cd08ae0ffc (patch) | |
tree | 075c3a5be69e3438fd2d33abe97465266d6e5b22 | |
parent | d841357d7f68e2b5d763aeef1dc1ce050b6f11df (diff) | |
download | aurweb-6395a5d5b86ce4aca75a4eb246db77cd08ae0ffc.tar.xz |
Redirect at previous page after a successful login
After the user was authenticated a redirect to the site which
linked the user to the login page is done. This fixes FS#32481.
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
-rw-r--r-- | web/html/login.php | 5 | ||||
-rw-r--r-- | web/lib/acctfuncs.inc.php | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/web/html/login.php b/web/html/login.php index f898a57..ab7bac9 100644 --- a/web/html/login.php +++ b/web/html/login.php @@ -42,6 +42,11 @@ html_header('AUR ' . __("Login")); <p> <input type="submit" class="button" value="<?php print __("Login"); ?>" /> <a href="<?= get_uri('/passreset/') ?>">[<?= __('Forgot Password') ?>]</a> + <?php if (in_request('referer') !== ""): ?> + <input id="id_referer" type="hidden" name="referer" value="<?= in_request('referer') ?>" /> + <?php elseif (isset($_SERVER['HTTP_REFERER'])): ?> + <input id="id_referer" type="hidden" name="referer" value="<?= htmlspecialchars($_SERVER['HTTP_REFERER'], ENT_QUOTES) ?>" /> + <?php endif; ?> </p> </fieldset> </form> diff --git a/web/lib/acctfuncs.inc.php b/web/lib/acctfuncs.inc.php index 993cd34..6b7d227 100644 --- a/web/lib/acctfuncs.inc.php +++ b/web/lib/acctfuncs.inc.php @@ -544,7 +544,12 @@ function try_login() { } setcookie("AURSID", $new_sid, $cookie_time, "/", null, !empty($_SERVER['HTTPS']), true); - header("Location: " . get_uri('/')); + + $referer = in_request('referer'); + if (strpos($referer, aur_location()) !== 0) { + $referer = '/'; + } + header("Location: " . get_uri($referer)); $login_error = ""; } |