diff options
author | Florian Pritz <bluewind@xinu.at> | 2012-07-24 14:36:06 +0200 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2012-07-24 14:38:40 +0200 |
commit | 3d1d22ab4557393aaaaa061c01cf34ffe8de92f3 (patch) | |
tree | f87fb403aa0da7f9224c6542a039ec46eba0078b | |
parent | 6b679a68a5c789ebfed41aff3269c6b8008b2779 (diff) |
Don't call undefined functions on error page
Regression test: URL with disallowed chars: '$url/1234/.exec("asdf")'
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rwxr-xr-x | application/errors/error_general.php | 95 |
1 files changed, 84 insertions, 11 deletions
diff --git a/application/errors/error_general.php b/application/errors/error_general.php index 333b21fd0..4c2554c07 100755 --- a/application/errors/error_general.php +++ b/application/errors/error_general.php @@ -1,21 +1,94 @@ <?php -if (is_cli_client()) { - echo $heading."\n"; - echo $message."\n"; - exit(); -} +// fancy error page only works if we can load helpers +if (class_exists("CI_Controller") || isset($is_error_page)) { + $title = "Error"; + $is_error_page = true; + + $CI =& get_instance(); + $CI->load->helper("filebin"); + $CI->load->helper("url"); + + if (is_cli_client()) { + echo $heading."\n"; + echo $message."\n"; + exit(); + } -$title = "Error"; -$is_error_page = true; + include 'application/views/file/header.php'; -include 'application/views/file/header.php'; + ?> + <div class="error"> + <h1><?php echo $heading; ?></h1> + <?php echo $message; ?> + </div> + <?php + include 'application/views/file/footer.php'; +} else { + // default CI error page ?> - <div class="error"> +<!DOCTYPE html> +<html lang="en"> +<head> +<title>Error</title> +<style type="text/css"> + +::selection{ background-color: #E13300; color: white; } +::moz-selection{ background-color: #E13300; color: white; } +::webkit-selection{ background-color: #E13300; color: white; } + +body { + background-color: #fff; + margin: 40px; + font: 13px/20px normal Helvetica, Arial, sans-serif; + color: #4F5155; +} + +a { + color: #003399; + background-color: transparent; + font-weight: normal; +} + +h1 { + color: #444; + background-color: transparent; + border-bottom: 1px solid #D0D0D0; + font-size: 19px; + font-weight: normal; + margin: 0 0 14px 0; + padding: 14px 15px 10px 15px; +} + +code { + font-family: Consolas, Monaco, Courier New, Courier, monospace; + font-size: 12px; + background-color: #f9f9f9; + border: 1px solid #D0D0D0; + color: #002166; + display: block; + margin: 14px 0 14px 0; + padding: 12px 10px 12px 10px; +} + +#container { + margin: 10px; + border: 1px solid #D0D0D0; + -webkit-box-shadow: 0 0 8px #D0D0D0; +} + +p { + margin: 12px 15px 12px 15px; +} +</style> +</head> +<body> + <div id="container"> <h1><?php echo $heading; ?></h1> <?php echo $message; ?> </div> - +</body> +</html> <?php -include 'application/views/file/footer.php'; +} |