[aur-dev] [PATCH 3/4] Do not set GET parameters in the routing framework

Lukas Fleischer archlinux at cryptocrack.de
Tue Sep 18 08:24:33 EDT 2012


Setting GET parameters manually is bad style and causes some strange
side effects when using virtual URLs and mkurl().

Signed-off-by: Lukas Fleischer <archlinux at cryptocrack.de>
---
 web/html/index.php    |  7 +++++--
 web/html/packages.php | 25 ++++++++++++++-----------
 2 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/web/html/index.php b/web/html/index.php
index 2d80a94..5c56868 100644
--- a/web/html/index.php
+++ b/web/html/index.php
@@ -9,8 +9,11 @@ $tokens = explode('/', $path);
 
 if (isset($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) {
 	if (isset($tokens[2])) {
-		unset($_GET['ID']);
-		$_GET['N'] = $tokens[2];
+		/* TODO: Create a proper data structure to pass variables from
+		 * the routing framework to the individual pages instead of
+		 * initializing arbitrary variables here. */
+		$pkgname = $tokens[2];
+		$pkgid = pkgid_from_name($pkgname);
 
 		if (isset($tokens[3])) {
 			if ($tokens[3] == 'voters') {
diff --git a/web/html/packages.php b/web/html/packages.php
index ec76e41..44f7671 100644
--- a/web/html/packages.php
+++ b/web/html/packages.php
@@ -7,11 +7,22 @@ set_lang();                       # this sets up the visitor's language
 include_once('pkgfuncs.inc.php'); # package specific functions
 check_sid();                      # see if they're still logged in
 
+# Retrieve package ID and name, unless initialized by the routing framework
+if (!isset($pkgid) || !isset($pkgname)) {
+	if (isset($_GET['ID'])) {
+		$pkgid = intval($_GET['ID']);
+		$pkgname = pkgname_from_id($_GET['ID']);
+	} else if (isset($_GET['N'])) {
+		$pkgid = pkgid_from_name($_GET['N']);
+		$pkgname = $_GET['N'];
+	} else {
+		unset($pkgid, $pkgname);
+	}
+}
+
 # Set the title to the current query if required
-if (isset($_GET['ID']) && ($pkgname = pkgname_from_id($_GET['ID']))) {
+if (isset($pkgname)) {
 	$title = $pkgname;
-} else if (isset($_GET['N'])) {
-	$title = $pkgname = $_GET['N'];
 } else if (!empty($_GET['K'])) {
 	$title = __("Search Criteria") . ": " . $_GET['K'];
 } else {
@@ -90,14 +101,6 @@ html_header($title);
 <?php endif; ?>
 
 <?php
-if (isset($_GET['ID'])) {
-	$pkgid = intval($_GET['ID']);
-} else if (isset($_GET['N'])) {
-	$pkgid = pkgid_from_name($_GET['N']);
-} else {
-	unset($pkgid);
-}
-
 if (isset($pkgid)) {
 	include('pkg_search_form.php');
 	if ($pkgid) {
-- 
1.7.12



More information about the aur-dev mailing list