summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2012-07-24 14:36:06 +0200
committerFlorian Pritz <bluewind@xinu.at>2012-07-24 14:38:40 +0200
commit3d1d22ab4557393aaaaa061c01cf34ffe8de92f3 (patch)
treef87fb403aa0da7f9224c6542a039ec46eba0078b
parent6b679a68a5c789ebfed41aff3269c6b8008b2779 (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-xapplication/errors/error_general.php95
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';
+}