commit ba080596be42e2df60d6555f55405b3738c95fcd
parent e779e681c90d66cea84274c1c1b9cb84d857beb1
Author: Jan Dankert <devnull@localhost>
Date: Wed, 29 Aug 2018 22:39:00 +0200
Verschönerung der Fehlermeldung im Falle eines schlimmen Fehlers.
Diffstat:
2 files changed, 56 insertions(+), 54 deletions(-)
diff --git a/index.php b/index.php
@@ -11,24 +11,60 @@ try {
if (!headers_sent())
header('HTTP/1.0 500 Internal Server Error');
+ header('Content-Security-Policy: style-src: inline;' );
+
?><!DOCTYPE html>
<html lang="en">
<head>
- <!-- Simple HttpErrorPages | MIT License | https://github.com/AndiDittrich/HttpErrorPages -->
- <meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1" />
- <title>We've got some trouble | Service currently unavailable</title>
- <style type="text/css">/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}/*! Simple HttpErrorPages | MIT X11 License | https://github.com/AndiDittrich/HttpErrorPages */body,html{width:100%;height:100%;background-color:#21232a}body{color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5);padding:0;min-height:100%;-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.8);box-shadow:inset 0 0 100px rgba(0,0,0,.8);display:table;font-family:"Open Sans",Arial,sans-serif}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #707070}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}footer{position:fixed;width:100%;height:40px;left:0;bottom:0;color:#a0a0a0;font-size:14px}</style>
+ <meta charset="utf-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
+ <title>Service currently unavailable</title>
+ <style type="text/css">
+
+ header, main {
+ display: block
+ }
+
+ body {
+ width: 100%;
+ height: 100%;
+ background-color: rgba(13,8,5,0.58);
+ color: white;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ line-height: 1.4;
+ font-size: 1.5em;
+ text-align: center;
+ }
+
+ pre {
+ margin:10%;
+ width: 80%;
+ overflow: visible;
+ height: 40%;
+ color: silver;
+ text-align: left;
+ font-size: 0.6rem;
+ }
+
+ h1 {
+ font-size: 2em;
+ }
+</style>
</head>
<body>
-<div class="cover"><h1>Ooooh, sorry. Our service is currently unavailable... <small>Server Error 500</small></h1><p class="lead"><?php echo $e->getMessage() ?><br/></p>
-
- <p>
- <code>
- <?php echo $e->__toString(); ?>
- </code>
- </p>
-</div>
+
+<header>
+ <h1>Sorry, <?php echo defined('OR_TITLE')?OR_TITLE:'our service' ?> is currently unavailable.</h1>
+</header>
+
+<main>
+
+ <p>Something went terribly wrong.</p>
+
+ <pre><?php echo $e->__toString(); ?></pre>
+</main>
</body>
</html><?php
diff --git a/modules/util/Http.class.php b/modules/util/Http.class.php
@@ -509,50 +509,16 @@ class Http
$types = Http::getAccept();
- if ( @$_REQUEST['output']=='json' || sizeof($types)==1 && in_array('application/json',$types) )
- {
- header('Content-Type: application/json');
- require_once( OR_MODULES_DIR."util/JSON.class.".PHP_EXT );
- $json = new JSON();
- echo $json->encode( array('status'=>$status,'error'=>$text,'description'=>$message,'reason'=>$reason) );
- }
- elseif ( @$_REQUEST['output']=='xml' || sizeof($types)==1 && in_array('application/xml',$types) )
- {
- header('Content-Type: application/xml');
- require_once( OR_MODULES_DIR."util/XML.class.".PHP_EXT );
- $xml = new XML();
- $xml->root='error';
- echo $xml->encode( array('status'=>$status,'error'=>$text,'description'=>$message,'reason'=>$reason) );
- }
- else
- {
- header('Content-Type: text/html');
- $message = htmlentities($message);
- $reason = htmlentities($reason );
- $signature = OR_TITLE.' '.OR_VERSION.' '.getenv('SERVER_SOFTWARE');
- echo <<<HTML
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <!-- Simple HttpErrorPages | MIT License | https://github.com/AndiDittrich/HttpErrorPages -->
- <meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1" />
- <title>We've got some trouble | Service currently unavailable</title>
- <style type="text/css">/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}/*! Simple HttpErrorPages | MIT X11 License | https://github.com/AndiDittrich/HttpErrorPages */body,html{width:100%;height:100%;background-color:#21232a}body{color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5);padding:0;min-height:100%;-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.8);box-shadow:inset 0 0 100px rgba(0,0,0,.8);display:table;font-family:"Open Sans",Arial,sans-serif}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #707070}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}footer{position:fixed;width:100%;height:40px;left:0;bottom:0;color:#a0a0a0;font-size:14px}</style>
-</head>
-<body>
-<div class="cover"><h1>Ooooh, sorry. This service is currently unavailable... <small>$text $status</small></h1><p class="lead">$message</p></div>
-
- <p>
- <code>
- <?php echo $reason; ?>
- </code>
- </p>
-
-</body>
-</html><?php
+ header('Content-Type: text/html');
+ $message = htmlentities($message);
+ $reason = htmlentities($reason );
+ echo <<<HTML
+<h1>$text</h1>
+<p>$message</p>
+<pre><?php echo $reason; ?></pre>
+<?php
HTML;
- }
exit;
}