return $proto . '://' . IP::combineHostAndPort( $host, $port, $stdPort );
}
+ /**
+ * @return array
+ */
public static function detectProtocolAndStdPort() {
return ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' ) ? array( 'https', 443 ) : array( 'http', 80 );
}
+ /**
+ * @return string
+ */
public static function detectProtocol() {
list( $proto, $stdPort ) = self::detectProtocolAndStdPort();
return $proto;
* used for undoing the evil that is magic_quotes_gpc.
*
* @param $arr array: will be modified
+ * @param $recursion bool Used to modify behaviour based on recursion
* @return array the original array
*/
- private function &fix_magic_quotes( &$arr ) {
+ private function &fix_magic_quotes( &$arr, $recursion = false ) {
+ $clean = array();
foreach( $arr as $key => $val ) {
if( is_array( $val ) ) {
- $this->fix_magic_quotes( $arr[$key] );
+ $cleanKey = !$recursion ? stripslashes( $key ) : $key;
+ $clean[$cleanKey] = $this->fix_magic_quotes( $arr[$key], true );
} else {
- $arr[$key] = stripslashes( $val );
+ $cleanKey = stripslashes( $key );
+ $clean[$cleanKey] = stripslashes( $val );
}
}
+ $arr = $clean;
return $arr;
}
* Return the request URI with the canonical service and hostname, path,
* and query string. This will be suitable for use as an absolute link
* in HTML or other output.
- *
+ *
* If $wgServer is protocol-relative, this will return a fully
* qualified URL with the protocol that was used for this request.
*
return false;
}
}
- wfHttpError( 403, 'Forbidden',
+ throw new HttpError( 403,
'Invalid file extension found in the path info or query string.' );
-
- return false;
}
return true;
}
* if there was no dot before the question mark (bug 28235).
*
* @deprecated Use checkUrlExtension().
+ *
+ * @param $extWhitelist array
+ *
+ * @return bool
*/
public function isPathInfoBad( $extWhitelist = array() ) {
global $wgScriptExtension;
throw new MWException( "{$method}() not implemented" );
}
+ /**
+ * @param $name string
+ * @param $default string
+ * @return string
+ */
public function getText( $name, $default = '' ) {
# Override; don't recode since we're using internal data
return (string)$this->getVal( $name, $default );
}
+ /**
+ * @return Array
+ */
public function getValues() {
return $this->data;
}
+ /**
+ * @return array
+ */
public function getQueryValues() {
if ( $this->wasPosted ) {
return array();
}
}
+ /**
+ * @return bool
+ */
public function wasPosted() {
return $this->wasPosted;
}
$this->notImplemented( __METHOD__ );
}
+ /**
+ * @param $name
+ * @return bool|string
+ */
public function getHeader( $name ) {
return isset( $this->headers[$name] ) ? $this->headers[$name] : false;
}
+ /**
+ * @param $name string
+ * @param $val string
+ */
public function setHeader( $name, $val ) {
$this->headers[$name] = $val;
}
return $this->session;
}
+ /**
+ * @param array $extWhitelist
+ * @return bool
+ */
public function isPathInfoBad( $extWhitelist = array() ) {
return false;
}
+ /**
+ * @param array $extWhitelist
+ * @return bool
+ */
public function checkUrlExtension( $extWhitelist = array() ) {
return true;
}
+ /**
+ * @return string
+ */
protected function getRawIP() {
return '127.0.0.1';
}