From a9929a4ebd9e52552a1cac91a1b5e52adf002f89 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Robert=20Stojni=C4=87?= Date: Thu, 14 Dec 2006 02:16:49 +0000 Subject: [PATCH] Be more cautious about using _SERVER['SCRIPT_NAME'] in /variant/Title syntax. --- languages/LanguageConverter.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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 -- 2.20.1