diff options
Diffstat (limited to 'includes/WebResponse.php')
-rw-r--r-- | includes/WebResponse.php | 54 |
1 files changed, 48 insertions, 6 deletions
diff --git a/includes/WebResponse.php b/includes/WebResponse.php index 05023e15..09d37385 100644 --- a/includes/WebResponse.php +++ b/includes/WebResponse.php @@ -2,17 +2,59 @@ /** * Allow programs to request this object from WebRequest::response() * and handle all outputting (or lack of outputting) via it. + * @ingroup HTTP */ class WebResponse { - /** Output a HTTP header */ - function header($string, $replace=true) { + /** + * Output a HTTP header, wrapper for PHP's + * header() + * @param $string String: header to output + * @param $replace Bool: replace current similar header + */ + public function header($string, $replace=true) { header($string,$replace); } - /** Set the browser cookie */ - function setcookie($name, $value, $expire) { - global $wgCookiePath, $wgCookieDomain, $wgCookieSecure; - setcookie($name,$value,$expire, $wgCookiePath, $wgCookieDomain, $wgCookieSecure); + /** Set the browser cookie + * @param $name String: name of cookie + * @param $value String: value to give cookie + * @param $expire Int: number of seconds til cookie expires + */ + public function setcookie( $name, $value, $expire = 0 ) { + global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain; + global $wgCookieSecure,$wgCookieExpiration, $wgCookieHttpOnly; + if ( $expire == 0 ) { + $expire = time() + $wgCookieExpiration; + } + $httpOnlySafe = wfHttpOnlySafe(); + wfDebugLog( 'cookie', + 'setcookie: "' . implode( '", "', + array( + $wgCookiePrefix . $name, + $value, + $expire, + $wgCookiePath, + $wgCookieDomain, + $wgCookieSecure, + $httpOnlySafe && $wgCookieHttpOnly ) ) . '"' ); + if( $httpOnlySafe && isset( $wgCookieHttpOnly ) ) { + setcookie( $wgCookiePrefix . $name, + $value, + $expire, + $wgCookiePath, + $wgCookieDomain, + $wgCookieSecure, + $wgCookieHttpOnly ); + } else { + // setcookie() fails on PHP 5.1 if you give it future-compat paramters. + // stab stab! + setcookie( $wgCookiePrefix . $name, + $value, + $expire, + $wgCookiePath, + $wgCookieDomain, + $wgCookieSecure ); + } } } |