[aur-dev] [PATCH v3] Redirect at previous page after a successful login

Gordian Edenhofer gordian.edenhofer at gmail.com
Thu Jun 18 19:28:17 UTC 2015


After the user was authenticated a redirect to the site which
linked the user to the login page is done. This fixes FS#32481.
---
Here you go.

Changes since v2:
* Formatting
* Usual redirect to register page if it is the referer

 web/html/login.php        | 5 +++++
 web/lib/acctfuncs.inc.php | 7 ++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

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 20ac081..5d62e4e 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 = "";
 }
 
-- 
2.4.4


More information about the aur-dev mailing list