From e3a402677f23c40299b238bf9a7aed2003255a79 Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Thu, 27 Aug 2009 12:37:21 +0000 Subject: [PATCH] Workaround for the missing REQUEST_URI on IIS SVN:trunk[105] --- application/displayblock.class.inc.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/application/displayblock.class.inc.php b/application/displayblock.class.inc.php index 8eebeeae0..8d131427d 100644 --- a/application/displayblock.class.inc.php +++ b/application/displayblock.class.inc.php @@ -775,7 +775,22 @@ class MenuBlock extends DisplayBlock { $sPort = ($_SERVER['SERVER_PORT'] == 443) ? '' : ':'.$_SERVER['SERVER_PORT']; } - $sPath = $_SERVER['REQUEST_URI']; + // $_SERVER['REQUEST_URI'] is empty when running on IIS + // Let's use Ivan Tcholakov's fix (found on www.dokeos.com) + if (!empty($_SERVER['REQUEST_URI'])) + { + $sPath = $_SERVER['REQUEST_URI']; + } + else + { + $sPath = $_SERVER['SCRIPT_NAME']; + if (!empty($_SERVER['QUERY_STRING'])) + { + $sPath .= '?'.$_SERVER['QUERY_STRING']; + } + $_SERVER['REQUEST_URI'] = $sPath; + } + $sPath = $_SERVER['REQUEST_URI']; $sUrl = "$sProtocol://{$sServerName}{$sPort}{$sPath}"; return $sUrl;