src/app/n2n/core/err/ExceptionHandler.php
private function renderFatalExceptionsHtmlInfo(array $exceptions) {
		if ($this->httpFatalExceptionSent) return;
		if (!$this->isObActive()) {
			$this->httpFatalExceptionSent = true;
		}
		$output = $this->fetchObDirty();

		if (!headers_sent()) {
			header('Content-Type: text/html; charset=utf-8');
			header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error');
		}
		
		echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n" 
				. '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\r\n"
				. '<html xmlns="http://www.w3.org/1999/xhtml" lang="de">' . "\r\n"
				. '<head>' . "\r\n" 
				. '<title>Fatal Error occurred</title>' . "\r\n" 
				. '</head>' . "\r\n" 
				. '<body>' . "\r\n"
				. '<h1>Fatal Error occurred</h1>' . "\r\n";
		
		if (N2N::isLiveStageOn()) {
			echo '<p>Webmaster was informed. Please try later again.</p>' . "\r\n";
		} else {
			$i = 0;
			foreach ($exceptions as $e) {
				if ($i++ == 0) {
					echo '<h2>' . htmlspecialchars(get_class($e), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</h2>' . "\r\n"
							. $this->buildDevelopmentExceptionHtmlContent($e);
					continue;
				}
				
				echo '<h2>caused by: ' . htmlspecialchars(get_class($e), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</h2>' . "\r\n" 
						. $this->buildDevelopmentExceptionHtmlContent($e);
			}
			
			echo '<h2>Output</h2>' . "\r\n" .
					'<pre>' . htmlspecialchars($output, ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</pre>'  . "\r\n";
		}
		
		echo '</body>' . "\r\n" .
				'</html>';
	}
private function renderFatalExceptionsHtmlInfo(array $exceptions) {
		if ($this->httpFatalExceptionSent) return;
		if (!$this->isObActive()) {
			$this->httpFatalExceptionSent = true;
		}
		$output = $this->fetchObDirty();

		if (!headers_sent()) {
			header('Content-Type: text/html; charset=utf-8');
			header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error');
		}
		
		echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n" 
				. '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\r\n"
				. '<html xmlns="http://www.w3.org/1999/xhtml" lang="de">' . "\r\n"
				. '<head>' . "\r\n" 
				. '<title>Fatal Error occurred</title>' . "\r\n" 
				. '</head>' . "\r\n" 
				. '<body>' . "\r\n"
				. '<h1>Fatal Error occurred</h1>' . "\r\n";
		
		if (N2N::isLiveStageOn()) {
			echo '<p>Webmaster was informed. Please try later again.</p>' . "\r\n";
		} else {
			$i = 0;
			foreach ($exceptions as $e) {
				if ($i++ == 0) {
					echo '<h2>' . htmlspecialchars(get_class($e), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</h2>' . "\r\n"
							. $this->buildDevelopmentExceptionHtmlContent($e);
					continue;
				}
				
				echo '<h2>caused by: ' . htmlspecialchars(get_class($e), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</h2>' . "\r\n" 
						. $this->buildDevelopmentExceptionHtmlContent($e);
			}
			
			echo '<h2>Output</h2>' . "\r\n" .
					'<pre>' . htmlspecialchars($output, ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</pre>'  . "\r\n";
		}
		
		echo '</body>' . "\r\n" .
				'</html>';
	}
private function renderFatalExceptionsHtmlInfo ( array $ exceptions ) { if ( $ this -> httpFatalExceptionSent ) return ; if ( ! $ this -> isObActive ( ) ) { $ this -> httpFatalExceptionSent = true ; } $ output = $ this -> fetchObDirty ( ) ; if ( ! headers_sent ( ) ) { header ( 'Content-Type: text/html; charset=utf-8' ) ; header ( $ _SERVER [ 'SERVER_PROTOCOL' ] . ' 500 Internal Server Error' ) ; } echo '<?xml version="1.0" encoding="UTF-8"?>' . "\r\n" . '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\r\n" . '<html xmlns="http://www.w3.org/1999/xhtml" lang="de">' . "\r\n" . '<head>' . "\r\n" . '<title>Fatal Error occurred</title>' . "\r\n" . '</head>' . "\r\n" . '<body>' . "\r\n" . '<h1>Fatal Error occurred</h1>' . "\r\n" ; if ( N2N :: isLiveStageOn ( ) ) { echo '<p>Webmaster was informed. Please try later again.</p>' . "\r\n" ; } else { $ i = 0 ; foreach ( $ exceptions as $ e ) { if ( $ i ++ == 0 ) { echo '<h2>' . htmlspecialchars ( get_class ( $ e ) , ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE ) . '</h2>' . "\r\n" . $ this -> buildDevelopmentExceptionHtmlContent ( $ e ) ; continue ; } echo '<h2>caused by: ' . htmlspecialchars ( get_class ( $ e ) , ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE ) . '</h2>' . "\r\n" . $ this -> buildDevelopmentExceptionHtmlContent ( $ e ) ; } echo '<h2>Output</h2>' . "\r\n" . '<pre>' . htmlspecialchars ( $ output , ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE ) . '</pre>' . "\r\n" ; } echo '</body>' . "\r\n" . '</html>' ; }
prints fatal exception infos in html

@param array $exceptions
prints fatal exception infos in html