*
* @package MediaWiki
*/
+
+/**
+ * Some entry points may use this file without first enabling the
+ * autoloader.
+ */
+if ( !function_exists( '__autoload' ) ) {
+ require_once( dirname(__FILE__) . '/normal/UtfNormal.php' );
+}
+
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 );
+ }
}
}
+
+ private $_response;
/**
* Recursively strips slashes from the given array;
$data = $wgContLang->checkTitleEncoding( $data );
}
}
- require_once( 'normal/UtfNormal.php' );
$data = $this->normalizeUnicode( $data );
return $data;
} else {
wfDebug( "WebRequest::getFileName() '" . $_FILES[$key]['name'] . "' normalized to '$name'\n" );
return $name;
}
+
+ /**
+ * Return a handle to WebResponse style object, for setting cookies,
+ * headers and other stuff, for Request being worked on.
+ */
+ function response() {
+ /* Lazy initialization of response object for this request */
+ if (!is_object($this->_response)) {
+ $this->_response = new WebResponse;
+ }
+ return $this->_response;
+ }
+
}
/**
* @package MediaWiki
*/
class FauxRequest extends WebRequest {
- private
- $data = null,
- $wasPosted = false ;
+ var $data = null;
+ var $wasPosted = false;
function FauxRequest( $data, $wasPosted = false ) {
if( is_array( $data ) ) {
$this->data = $data;
} else {
- wfDebugDieBacktrace( "FauxRequest() got bogus data" );
+ throw new MWException( "FauxRequest() got bogus data" );
}
$this->wasPosted = $wasPosted;
}
}
function getRequestURL() {
- wfDebugDieBacktrace( 'FauxRequest::getRequestURL() not implemented' );
+ throw new MWException( 'FauxRequest::getRequestURL() not implemented' );
}
function appendQuery( $query ) {
- wfDebugDieBacktrace( 'FauxRequest::appendQuery() not implemented' );
+ throw new MWException( 'FauxRequest::appendQuery() not implemented' );
}
}