summaryrefslogtreecommitdiff
path: root/includes/WebResponse.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/WebResponse.php')
-rw-r--r--includes/WebResponse.php54
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 );
+ }
}
}