From 370e83bb0dfd0c70de268c93bf07ad5ee0897192 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Fri, 15 Aug 2008 01:29:47 +0200 Subject: Update auf 1.13.0 --- includes/WebRequest.php | 150 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 100 insertions(+), 50 deletions(-) (limited to 'includes/WebRequest.php') diff --git a/includes/WebRequest.php b/includes/WebRequest.php index 944be3c9..3fce5845 100644 --- a/includes/WebRequest.php +++ b/includes/WebRequest.php @@ -23,7 +23,7 @@ /** - * Some entry points may use this file without first enabling the + * Some entry points may use this file without first enabling the * autoloader. */ if ( !function_exists( '__autoload' ) ) { @@ -43,18 +43,20 @@ if ( !function_exists( '__autoload' ) ) { */ class WebRequest { var $data = array(); - + var $headers; + private $_response; + function __construct() { /// @fixme This preemptive de-quoting can interfere with other web libraries /// and increases our memory footprint. It would be cleaner to do on /// demand; but currently we have no wrapper for $_SERVER etc. $this->checkMagicQuotes(); - + // POST overrides GET data // We don't use $_REQUEST here to avoid interference from cookies... $this->data = wfArrayMerge( $_GET, $_POST ); } - + /** * Check for title, action, and/or variant data in the URL * and interpolate it into the GET variables. @@ -77,8 +79,8 @@ class WebRequest { } $a = parse_url( $url ); if( $a ) { - $path = $a['path']; - + $path = isset( $a['path'] ) ? $a['path'] : ''; + global $wgScript; if( $path == $wgScript ) { // Script inside a rewrite path? @@ -87,17 +89,17 @@ class WebRequest { } // Raw PATH_INFO style $matches = $this->extractTitle( $path, "$wgScript/$1" ); - + global $wgArticlePath; if( !$matches && $wgArticlePath ) { $matches = $this->extractTitle( $path, $wgArticlePath ); } - + global $wgActionPaths; if( !$matches && $wgActionPaths ) { $matches = $this->extractTitle( $path, $wgActionPaths, 'action' ); } - + global $wgVariantArticlePath, $wgContLang; if( !$matches && $wgVariantArticlePath ) { $variantPaths = array(); @@ -113,7 +115,7 @@ class WebRequest { // http://bugs.php.net/bug.php?id=31892 // Also reported when ini_get('cgi.fix_pathinfo')==false $matches['title'] = substr( $_SERVER['ORIG_PATH_INFO'], 1 ); - + } elseif ( isset( $_SERVER['PATH_INFO'] ) && ($_SERVER['PATH_INFO'] != '') ) { // Regular old PATH_INFO yay $matches['title'] = substr( $_SERVER['PATH_INFO'], 1 ); @@ -123,15 +125,15 @@ class WebRequest { } } } - + /** * Internal URL rewriting function; tries to extract page title and, * optionally, one other fixed parameter value from a URL path. * - * @param string $path the URL path given from the client - * @param array $bases one or more URLs, optionally with $1 at the end - * @param string $key if provided, the matching key in $bases will be - * passed on as the value of this URL parameter + * @param $path string: the URL path given from the client + * @param $bases array: one or more URLs, optionally with $1 at the end + * @param $key string: if provided, the matching key in $bases will be + * passed on as the value of this URL parameter * @return array of URL variables to interpolate; empty if no match */ private function extractTitle( $path, $bases, $key=false ) { @@ -152,13 +154,11 @@ class WebRequest { } return array(); } - - private $_response; /** * Recursively strips slashes from the given array; * used for undoing the evil that is magic_quotes_gpc. - * @param array &$arr will be modified + * @param $arr array: will be modified * @return array the original array * @private */ @@ -181,7 +181,7 @@ class WebRequest { * @private */ function checkMagicQuotes() { - if ( get_magic_quotes_gpc() ) { + if ( function_exists( 'get_magic_quotes_gpc' ) && get_magic_quotes_gpc() ) { $this->fix_magic_quotes( $_COOKIE ); $this->fix_magic_quotes( $_ENV ); $this->fix_magic_quotes( $_GET ); @@ -193,7 +193,7 @@ class WebRequest { /** * Recursively normalizes UTF-8 strings in the given array. - * @param array $data string or array + * @param $data string or array * @return cleaned-up version of the given * @private */ @@ -211,9 +211,9 @@ class WebRequest { /** * Fetch a value from the given array or return $default if it's not set. * - * @param array $arr - * @param string $name - * @param mixed $default + * @param $arr array + * @param $name string + * @param $default mixed * @return mixed * @private */ @@ -236,12 +236,12 @@ class WebRequest { /** * Fetch a scalar from the input or return $default if it's not set. - * Returns a string. Arrays are discarded. Useful for - * non-freeform text inputs (e.g. predefined internal text keys + * Returns a string. Arrays are discarded. Useful for + * non-freeform text inputs (e.g. predefined internal text keys * selected by a drop-down menu). For freeform input, see getText(). * - * @param string $name - * @param string $default optional default (or NULL) + * @param $name string + * @param $default string: optional default (or NULL) * @return string */ function getVal( $name, $default = NULL ) { @@ -261,8 +261,8 @@ class WebRequest { * If source was scalar, will return an array with a single element. * If no source and no default, returns NULL. * - * @param string $name - * @param array $default optional default (or NULL) + * @param $name string + * @param $default array: optional default (or NULL) * @return array */ function getArray( $name, $default = NULL ) { @@ -273,15 +273,15 @@ class WebRequest { return (array)$val; } } - + /** * Fetch an array of integers, or return $default if it's not set. * If source was scalar, will return an array with a single element. * If no source and no default, returns NULL. * If an array is returned, contents are guaranteed to be integers. * - * @param string $name - * @param array $default option default (or NULL) + * @param $name string + * @param $default array: option default (or NULL) * @return array of ints */ function getIntArray( $name, $default = NULL ) { @@ -296,8 +296,8 @@ class WebRequest { * Fetch an integer value from the input or return $default if not set. * Guaranteed to return an integer; non-numeric input will typically * return 0. - * @param string $name - * @param int $default + * @param $name string + * @param $default int * @return int */ function getInt( $name, $default = 0 ) { @@ -308,7 +308,7 @@ class WebRequest { * Fetch an integer value from the input or return null if empty. * Guaranteed to return an integer or null; non-numeric input will * typically return null. - * @param string $name + * @param $name string * @return int */ function getIntOrNull( $name ) { @@ -322,8 +322,8 @@ class WebRequest { * Fetch a boolean value from the input or return $default if not set. * Guaranteed to return true or false, with normal PHP semantics for * boolean interpretation of strings. - * @param string $name - * @param bool $default + * @param $name string + * @param $default bool * @return bool */ function getBool( $name, $default = false ) { @@ -334,7 +334,7 @@ class WebRequest { * Return true if the named value is set in the input, whatever that * value is (even "0"). Return false if the named value is not set. * Example use is checking for the presence of check boxes in forms. - * @param string $name + * @param $name string * @return bool */ function getCheck( $name ) { @@ -349,11 +349,11 @@ class WebRequest { * set. \r is stripped from the text, and with some language modules there * is an input transliteration applied. This should generally be used for * form