From face72cb9a435049e8d17196c1fa8434982701b4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Tue, 10 Mar 2009 20:46:10 +0000 Subject: [PATCH] Reversed and obsolete code removed (was for admin area, we don't rewrite links in admin area anymore) --- inc/functions.php | 26 +++++++++++++++++- inc/libs/rewrite_functions.php | 50 ++++++++-------------------------- 2 files changed, 36 insertions(+), 40 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index 44ba689b58..d6c84e2187 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -3331,10 +3331,34 @@ function TRANSLATE_POOL_TYPE ($type) { return $translated; } +// Determines the real remote address +function determineRealRemoteAddress () { + // Is a proxy in use? + if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ + // Proxy was used + $address = $_SERVER['HTTP_X_FORWARDED_FOR']; + } elseif (isset($_SERVER['HTTP_CLIENT_IP'])){ + // Yet, another proxy + $address = $_SERVER['HTTP_CLIENT_IP']; + } else { + // The regular address when no proxy was used + $address = $_SERVER['REMOTE_ADDR']; + } + + // This strips out the real address from proxy output + if (strstr($address, ",")){ + $addressArray = explode(",", $address); + $address = $addressArray[0]; + } // END - if + + // Return the result + return $address; +} + // "Getter" for remote IP number function GET_REMOTE_ADDR () { // Get remote ip from environment - $remoteAddr = getenv('REMOTE_ADDR'); + $remoteAddr = determineRealRemoteAddress(); // Is removeip installed? if (EXT_IS_ACTIVE("removeip")) { diff --git a/inc/libs/rewrite_functions.php b/inc/libs/rewrite_functions.php index 36399f1662..121f0c4579 100644 --- a/inc/libs/rewrite_functions.php +++ b/inc/libs/rewrite_functions.php @@ -54,11 +54,14 @@ function REWRITE_LINKS ($HTML) { $target = constant('URL')."/cms/"; // Convert modules.php?module=... - $test = preg_replace("/".$URL."/modules.php?module=/i", $target, $HTML); + $output = preg_replace("/".$URL."\\/modules.php\\?module=/i", $target, $HTML); + + if (eregi(constant('SERVER_URL'), $output)) { + // Strip slashes with double-backslashes for the preg_replace() function + $URL = str_replace("/", "\\/", constant('SERVER_URL')); - if (eregi(SERVER_URL, $test)) { // Convert URLs from my server - $test = preg_replace("/".constant('SERVER_URL')."/modules.php?module=/i", constant('SERVER_URL')."/cms/", $test); + $output = preg_replace("/".$URL."\\/modules.php\\?module=/i", constant('SERVER_URL')."/cms/", $output); } // END - if // Strip slashes as above for the main URL @@ -68,50 +71,19 @@ function REWRITE_LINKS ($HTML) { $act = $target."\$1/act/"; // Convert &|&action=... - $test = preg_replace("/".$target2."(.*)&action=/i", $act, $test); + $output = preg_replace("/".$target2."(.*)&action=/i", $act, $output); // "The same procedure as last variable"... now for &what= $wht = $target."\$1/wht/"; - $target2 = str_replace("/", "\\/", $target); - $test = preg_replace("/".$target2."(.*)&what=/i", $wht, $test); - - if ((EXT_IS_ACTIVE("rallye")) && (eregi("rallye=", $test))) { - // Replace data when rallye extension is active - // Add more if you need more like these entries - $REPLACE = array("rallye", "activate", "auto", "notify", "sub"); - foreach ($REPLACE as $var) { - // This will replace "&var=" to "/var/" - $test = preg_replace("/&".$var."=/i", "/".$var."/", $test); - } // END - foreach - } // END - if - - // Simple from->to replacements - $REPLACE = array( - 'search' => array("uid", "url", "page", "offset", "mid", "bid", "sub", "home"), - 'replace' => array("u" , "url", "page", "offset", "m" , "b" , "s" , "h") - ); - - if ((EXT_IS_ACTIVE("admins")) && (eregi("admin=", $test))) { - // Replace &admin= with "/aid/" - $REPLACE['search'][] = "admin"; - $REPLACE['replace'][] = "aid"; - } // END - if - - // Replace all array elements through - foreach ($REPLACE['search'] as $k => $v) { - if (eregi("$v=", $test)) { - // Replace &uid= with /u/ - $test = preg_replace("/&".$v."=/i", "/".$REPLACE['replace'][$k]."/", $test); - } // END - if - } // END - foreach + $output = preg_replace("/".$target2."(.*)&what=/i", $wht, $output); // Repair missed &what=??? entries - while (preg_match("/&what=(.*)\/(.*)\/(.*)/i", $test)) { - $test = preg_replace("/&what=(.*)\/(.*)\/(.*)/i", "/wht/\$1/\$2/\$3", $test); + while (preg_match("/&what=(.*)\/(.*)\/(.*)/i", $output)) { + $output = preg_replace("/&what=(.*)\/(.*)\/(.*)/i", "/wht/\$1/\$2/\$3", $output); } // END - while // Return rewritten code - return $test; + return $output; } // ?> -- 2.39.5