]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - includes/WebResponse.php
MediaWiki 1.16.0-scripts
[autoinstallsdev/mediawiki.git] / includes / WebResponse.php
1 <?php
2 /**
3  * Allow programs to request this object from WebRequest::response()
4  * and handle all outputting (or lack of outputting) via it.
5  * @ingroup HTTP
6  */
7 class WebResponse {
8
9         /**
10          * Output a HTTP header, wrapper for PHP's
11          * header()
12          * @param $string String: header to output
13          * @param $replace Bool: replace current similar header
14          */
15         public function header($string, $replace=true) {
16                 header($string,$replace);
17         }
18
19         /** Set the browser cookie
20          * @param $name String: name of cookie
21          * @param $value String: value to give cookie
22          * @param $expire Int: number of seconds til cookie expires
23          */
24         public function setcookie( $name, $value, $expire = 0 ) {
25                 global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain;
26                 global $wgCookieSecure,$wgCookieExpiration, $wgCookieHttpOnly;
27                 if ( $expire == 0 ) {
28                         $expire = time() + $wgCookieExpiration;
29                 }
30                 $httpOnlySafe = wfHttpOnlySafe();
31                 wfDebugLog( 'cookie',
32                         'setcookie: "' . implode( '", "',
33                                 array(
34                                         $wgCookiePrefix . $name,
35                                         $value,
36                                         $expire,
37                                         $wgCookiePath,
38                                         $wgCookieDomain,
39                                         $wgCookieSecure,
40                                         $httpOnlySafe && $wgCookieHttpOnly ) ) . '"' );
41                 if( $httpOnlySafe && isset( $wgCookieHttpOnly ) ) {
42                         setcookie( $wgCookiePrefix . $name,
43                                 $value,
44                                 $expire,
45                                 $wgCookiePath,
46                                 $wgCookieDomain,
47                                 $wgCookieSecure,
48                                 $wgCookieHttpOnly );
49                 } else {
50                         // setcookie() fails on PHP 5.1 if you give it future-compat paramters.
51                         // stab stab!
52                         setcookie( $wgCookiePrefix . $name,
53                                 $value,
54                                 $expire,
55                                 $wgCookiePath,
56                                 $wgCookieDomain,
57                                 $wgCookieSecure );
58                 }
59         }
60 }
61
62
63 class FauxResponse extends WebResponse {
64         private $headers;
65         private $cookies;
66
67         public function header($string, $replace=true) {
68                 list($key, $val) = explode(":", $string, 2);
69
70                 if($replace || !isset($this->headers[$key])) {
71                         $this->headers[$key] = $val;
72                 }
73         }
74
75         public function getheader($key) {
76                 return $this->headers[$key];
77         }
78
79         public function setcookie( $name, $value, $expire = 0 ) {
80                 $this->cookies[$name] = $value;
81         }
82
83         public function getcookie( $name )  {
84                 if ( isset($this->cookies[$name]) ) {
85                         return $this->cookies[$name];
86                 }
87         }
88 }