Experimental workaround for http://bugs.php.net/bug.php?id=31892 , will be tested...
authorTim Starling <tstarling@users.mediawiki.org>
Thu, 19 Oct 2006 00:56:57 +0000 (00:56 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Thu, 19 Oct 2006 00:56:57 +0000 (00:56 +0000)
includes/WebRequest.php

index 32307ed..3533695 100644 (file)
@@ -47,10 +47,15 @@ class WebRequest {
        function WebRequest() {
                $this->checkMagicQuotes();
                global $wgUsePathInfo;
-               if( isset( $_SERVER['PATH_INFO'] ) && ($_SERVER['PATH_INFO'] != '') && $wgUsePathInfo ) {
-                       # Stuff it!
-                       $_GET['title'] = $_REQUEST['title'] =
-                               substr( $_SERVER['PATH_INFO'], 1 );
+               if ( $wgUsePathInfo ) {
+                       if ( isset( $_SERVER['ORIG_PATH_INFO'] ) && $_SERVER['ORIG_PATH_INFO'] != '' ) {
+                               # Mangled PATH_INFO
+                               # http://bugs.php.net/bug.php?id=31892
+                               # Also reported when ini_get('cgi.fix_pathinfo')==false
+                               $_GET['title'] = $_REQUEST['title'] = substr( $_SERVER['ORIG_PATH_INFO'], 1 );
+                       } elseif ( isset( $_SERVER['PATH_INFO'] ) && ($_SERVER['PATH_INFO'] != '') && $wgUsePathInfo ) {
+                               $_GET['title'] = $_REQUEST['title'] = substr( $_SERVER['PATH_INFO'], 1 );
+                       }
                }
        }