[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * This program is free software; you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation; either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License along 14 * with this program; if not, write to the Free Software Foundation, Inc., 15 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 * http://www.gnu.org/copyleft/gpl.html 17 * 18 * @file 19 */ 20 21 /** 22 * Show an error that looks like an HTTP server error. 23 * Replacement for wfHttpError(). 24 * 25 * @since 1.19 26 * @ingroup Exception 27 */ 28 class HttpError extends MWException { 29 private $httpCode, $header, $content; 30 31 /** 32 * Constructor 33 * 34 * @param int $httpCode HTTP status code to send to the client 35 * @param string|Message $content Content of the message 36 * @param string|Message $header Content of the header (\<title\> and \<h1\>) 37 */ 38 public function __construct( $httpCode, $content, $header = null ) { 39 parent::__construct( $content ); 40 $this->httpCode = (int)$httpCode; 41 $this->header = $header; 42 $this->content = $content; 43 } 44 45 /** 46 * Returns the HTTP status code supplied to the constructor. 47 * 48 * @return int 49 */ 50 public function getStatusCode() { 51 return $this->httpCode; 52 } 53 54 /** 55 * Report the HTTP error. 56 * Sends the appropriate HTTP status code and outputs an 57 * HTML page with an error message. 58 */ 59 public function report() { 60 $httpMessage = HttpStatus::getMessage( $this->httpCode ); 61 62 header( "Status: {$this->httpCode} {$httpMessage}", true, $this->httpCode ); 63 header( 'Content-type: text/html; charset=utf-8' ); 64 65 print $this->getHTML(); 66 } 67 68 /** 69 * Returns HTML for reporting the HTTP error. 70 * This will be a minimal but complete HTML document. 71 * 72 * @return string HTML 73 */ 74 public function getHTML() { 75 if ( $this->header === null ) { 76 $header = HttpStatus::getMessage( $this->httpCode ); 77 } elseif ( $this->header instanceof Message ) { 78 $header = $this->header->escaped(); 79 } else { 80 $header = htmlspecialchars( $this->header ); 81 } 82 83 if ( $this->content instanceof Message ) { 84 $content = $this->content->escaped(); 85 } else { 86 $content = htmlspecialchars( $this->content ); 87 } 88 89 return "<!DOCTYPE html>\n" . 90 "<html><head><title>$header</title></head>\n" . 91 "<body><h1>$header</h1><p>$content</p></body></html>\n"; 92 } 93 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |