openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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:
index.php | 60++++++++++++++++++++++++++++++++++++++++++++++++------------
modules/util/Http.class.php | 50++++++++------------------------------------------
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; }