X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FWebResponse.php;h=1101d75d715619df53121a75ab87752a74f11f52;hb=ad39f2da8660219768f46db739be66a27c8eb651;hp=a2d257c13a0e860f6f0a88c21335ecfd22779b6e;hpb=2f7f99b1f1931107eed64b292eb8a20eb2bf394a;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/WebResponse.php b/includes/WebResponse.php index a2d257c13a..1101d75d71 100644 --- a/includes/WebResponse.php +++ b/includes/WebResponse.php @@ -43,29 +43,37 @@ class WebResponse { * @param $name String: name of cookie * @param $value String: value to give cookie * @param $expire Int: number of seconds til cookie expires + * @param $prefix String: Prefix to use, if not $wgCookiePrefix (use '' for no prefix) + * @param @domain String: Cookie domain to use, if not $wgCookieDomain */ - public function setcookie( $name, $value, $expire = 0 ) { + public function setcookie( $name, $value, $expire = 0, $prefix = null, $domain = null ) { global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain; global $wgCookieSecure,$wgCookieExpiration, $wgCookieHttpOnly; if ( $expire == 0 ) { $expire = time() + $wgCookieExpiration; } + if( $prefix === null ) { + $prefix = $wgCookiePrefix; + } + if( $domain === null ) { + $domain = $wgCookieDomain; + } $httpOnlySafe = wfHttpOnlySafe() && $wgCookieHttpOnly; wfDebugLog( 'cookie', 'setcookie: "' . implode( '", "', array( - $wgCookiePrefix . $name, + $prefix . $name, $value, $expire, $wgCookiePath, - $wgCookieDomain, + $domain, $wgCookieSecure, $httpOnlySafe ) ) . '"' ); - setcookie( $wgCookiePrefix . $name, + setcookie( $prefix . $name, $value, $expire, $wgCookiePath, - $wgCookieDomain, + $domain, $wgCookieSecure, $httpOnlySafe ); } @@ -86,11 +94,11 @@ class FauxResponse extends WebResponse { * @param $http_response_code null|int Forces the HTTP response code to the specified value. */ public function header( $string, $replace = true, $http_response_code = null ) { - $match = array(); - if ( preg_match( '~^HTTP/1.\d (\d+)\D*$~', $string, $match ) ) { - $this->code = intval( $match[1] ); + if ( substr( $string, 0, 5 ) == 'HTTP/' ) { + $parts = explode( ' ', $string, 3 ); + $this->code = intval( $parts[1] ); } else { - list( $key, $val ) = explode( ":", $string, 2 ); + list( $key, $val ) = array_map( 'trim', explode( ":", $string, 2 ) ); if( $replace || !isset( $this->headers[$key] ) ) { $this->headers[$key] = $val; @@ -107,7 +115,10 @@ class FauxResponse extends WebResponse { * @return string */ public function getheader( $key ) { - return $this->headers[$key]; + if ( isset( $this->headers[$key] ) ) { + return $this->headers[$key]; + } + return null; } /** @@ -124,7 +135,7 @@ class FauxResponse extends WebResponse { * @param $value String: value to give cookie * @param $expire Int: number of seconds til cookie expires */ - public function setcookie( $name, $value, $expire = 0 ) { + public function setcookie( $name, $value, $expire = 0, $prefix = null, $domain = null ) { $this->cookies[$name] = $value; }