* not create a second WebRequest object; make a FauxRequest object if
* you want to pass arbitrary data to some function in place of the web
* input.
- *
+ *
+ * @ingroup HTTP
*/
class WebRequest {
var $data = array();
// POST overrides GET data
// We don't use $_REQUEST here to avoid interference from cookies...
- $this->data = wfArrayMerge( $_GET, $_POST );
+ $this->data = $_POST + $_GET;
}
/**
$data = $this->normalizeUnicode( $data );
return $data;
} else {
+ taint( $default );
return $default;
}
}
$val = $default;
}
if( is_null( $val ) ) {
- return null;
+ return $val;
} else {
return (string)$val;
}
}
+
+ /**
+ * Set an aribtrary value into our get/post data.
+ * @param $key string Key name to use
+ * @param $value mixed Value to set
+ * @return mixed old value if one was present, null otherwise
+ */
+ function setVal( $key, $value ) {
+ $ret = isset( $this->data[$key] ) ? $this->data[$key] : null;
+ $this->data[$key] = $value;
+ return $ret;
+ }
/**
* Fetch an array from the input or return $default if it's not set.
}
}
}
+
+ /*
+ * Get data from $_SESSION
+ */
+ function getSessionData( $key ) {
+ if( !isset( $_SESSION[$key] ) )
+ return null;
+ return $_SESSION[$key];
+ }
+ function setSessionData( $key, $data ) {
+ $_SESSION[$key] = $data;
+ }
}
/**
* WebRequest clone which takes values from a provided array.
*
+ * @ingroup HTTP
*/
class FauxRequest extends WebRequest {
var $wasPosted = false;
* fake GET/POST values
* @param $wasPosted Bool: whether to treat the data as POST
*/
- function FauxRequest( $data, $wasPosted = false ) {
+ function FauxRequest( $data, $wasPosted = false, $session = null ) {
if( is_array( $data ) ) {
$this->data = $data;
} else {
}
$this->wasPosted = $wasPosted;
$this->headers = array();
+ $this->session = $session ? $session : array();
+ }
+
+ function notImplemented( $method ) {
+ throw new MWException( "{$method}() not implemented" );
}
function getText( $name, $default = '' ) {
}
function getRequestURL() {
- throw new MWException( 'FauxRequest::getRequestURL() not implemented' );
+ $this->notImplemented( __METHOD__ );
}
function appendQuery( $query ) {
- throw new MWException( 'FauxRequest::appendQuery() not implemented' );
+ $this->notImplemented( __METHOD__ );
}
function getHeader( $name ) {
return isset( $this->headers[$name] ) ? $this->headers[$name] : false;
}
+ function getSessionData( $key ) {
+ if( !isset( $this->session[$key] ) )
+ return null;
+ return $this->session[$key];
+ }
+ function setSessionData( $key, $data ) {
+ $this->notImplemented( __METHOD__ );
+ }
+
}