1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
5 * An open source application development framework for PHP 5.1.6 or newer
8 * @author ExpressionEngine Dev Team
9 * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
10 * @license http://codeigniter.com/user_guide/license.html
11 * @link http://codeigniter.com
16 // ------------------------------------------------------------------------
21 * @package CodeIgniter
22 * @subpackage Libraries
23 * @category Exceptions
24 * @author ExpressionEngine Dev Team
25 * @link http://codeigniter.com/user_guide/libraries/exceptions.html
37 E_WARNING => 'Warning',
38 E_PARSE => 'Parsing Error',
40 E_CORE_ERROR => 'Core Error',
41 E_CORE_WARNING => 'Core Warning',
42 E_COMPILE_ERROR => 'Compile Error',
43 E_COMPILE_WARNING => 'Compile Warning',
44 E_USER_ERROR => 'User Error',
45 E_USER_WARNING => 'User Warning',
46 E_USER_NOTICE => 'User Notice',
47 E_STRICT => 'Runtime Notice'
54 public function __construct()
56 $this->ob_level = ob_get_level();
57 // Note: Do not log messages from this constructor.
60 // --------------------------------------------------------------------
65 * This function logs PHP generated error messages
68 * @param string the error severity
69 * @param string the error string
70 * @param string the error filepath
71 * @param string the error line number
74 function log_exception($severity, $message, $filepath, $line)
76 $severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity];
78 log_message('error', 'Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line, TRUE);
81 // --------------------------------------------------------------------
84 * 404 Page Not Found Handler
90 function show_404($page = '', $log_error = TRUE)
92 $heading = "404 Page Not Found";
93 $message = "The page you requested was not found.";
95 // By default we log this, but allow a dev to skip it
98 log_message('error', '404 Page Not Found --> '.$page);
101 echo $this->show_error($heading, $message, 'error_404', 404);
105 // --------------------------------------------------------------------
110 * This function takes an error message as input
111 * (either as a string or an array) and displays
112 * it using the specified template.
115 * @param string the heading
116 * @param string the message
117 * @param string the template name
120 function show_error($heading, $message, $template = 'error_general', $status_code = 500)
122 set_status_header($status_code);
124 $message = '<p>'.implode('</p><p>', ( ! is_array($message)) ? array($message) : $message).'</p>';
126 if (ob_get_level() > $this->ob_level + 1)
131 include(APPPATH.'errors/'.$template.EXT);
132 $buffer = ob_get_contents();
137 // --------------------------------------------------------------------
140 * Native PHP error handler
143 * @param string the error severity
144 * @param string the error string
145 * @param string the error filepath
146 * @param string the error line number
149 function show_php_error($severity, $message, $filepath, $line)
151 $severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity];
153 $filepath = str_replace("\\", "/", $filepath);
155 // For safety reasons we do not show the full file path
156 if (FALSE !== strpos($filepath, '/'))
158 $x = explode('/', $filepath);
159 $filepath = $x[count($x)-2].'/'.end($x);
162 if (ob_get_level() > $this->ob_level + 1)
167 include(APPPATH.'errors/error_php'.EXT);
168 $buffer = ob_get_contents();
175 // END Exceptions Class
177 /* End of file Exceptions.php */
178 /* Location: ./system/core/Exceptions.php */