From: Robert Stojnić Date: Thu, 14 Dec 2006 02:16:49 +0000 (+0000) Subject: Be more cautious about using _SERVER['SCRIPT_NAME'] in /variant/Title syntax. X-Git-Tag: 1.31.0-rc.0~54907 X-Git-Url: http://git.cyclocoop.org/%24self?a=commitdiff_plain;h=a9929a4ebd9e52552a1cac91a1b5e52adf002f89;p=lhc%2Fweb%2Fwiklou.git Be more cautious about using _SERVER['SCRIPT_NAME'] in /variant/Title syntax. --- diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index 09225e23b3..ac38fa0f62 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -78,7 +78,7 @@ class LanguageConverter { * @access public */ function getPreferredVariant( $fromUser = true ) { - global $wgUser, $wgRequest; + global $wgUser, $wgRequest, $wgVariantArticlePath; if($this->mPreferredVariant) return $this->mPreferredVariant; @@ -91,10 +91,14 @@ class LanguageConverter { } // check the syntax /code/ArticleTitle - $scriptBase = basename( $_SERVER['SCRIPT_NAME'] ); - if(in_array($scriptBase,$this->mVariants)){ - $this->mPreferredVariant = $scriptBase; - return $this->mPreferredVariant; + if($wgVariantArticlePath!=false && isset($_SERVER['SCRIPT_NAME'])){ + // Note: SCRIPT_NAME probably won't hold the correct value if PHP is run as CGI + // (it will hold path to php.cgi binary), and might not exist on some very old PHP installations + $scriptBase = basename( $_SERVER['SCRIPT_NAME'] ); + if(in_array($scriptBase,$this->mVariants)){ + $this->mPreferredVariant = $scriptBase; + return $this->mPreferredVariant; + } } // get language variant preference from logged in users