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
35
* Nesting level of the output buffering mechanism
43
* List if available error levels
50
E_WARNING => 'Warning',
51
E_PARSE => 'Parsing Error',
53
E_CORE_ERROR => 'Core Error',
54
E_CORE_WARNING => 'Core Warning',
55
E_COMPILE_ERROR => 'Compile Error',
56
E_COMPILE_WARNING => 'Compile Warning',
57
E_USER_ERROR => 'User Error',
58
E_USER_WARNING => 'User Warning',
59
E_USER_NOTICE => 'User Notice',
60
E_STRICT => 'Runtime Notice'
67
public function __construct()
69
$this->ob_level = ob_get_level();
70
// Note: Do not log messages from this constructor.
73
// --------------------------------------------------------------------
78
* This function logs PHP generated error messages
81
* @param string the error severity
82
* @param string the error string
83
* @param string the error filepath
84
* @param string the error line number
87
function log_exception($severity, $message, $filepath, $line)
89
$severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity];
91
log_message('error', 'Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line, TRUE);
94
// --------------------------------------------------------------------
97
* 404 Page Not Found Handler
100
* @param string the page
101
* @param bool log error yes/no
104
function show_404($page = '', $log_error = TRUE)
106
$heading = "404 Page Not Found";
107
$message = "The page you requested was not found.";
109
// By default we log this, but allow a dev to skip it
112
log_message('error', '404 Page Not Found --> '.$page);
115
echo $this->show_error($heading, $message, 'error_404', 404);
119
// --------------------------------------------------------------------
124
* This function takes an error message as input
125
* (either as a string or an array) and displays
126
* it using the specified template.
129
* @param string the heading
130
* @param string the message
131
* @param string the template name
132
* @param int the status code
135
function show_error($heading, $message, $template = 'error_general', $status_code = 500)
137
set_status_header($status_code);
139
$message = '<p>'.implode('</p><p>', ( ! is_array($message)) ? array($message) : $message).'</p>';
141
if (ob_get_level() > $this->ob_level + 1)
146
include(APPPATH.'errors/'.$template.'.php');
147
$buffer = ob_get_contents();
152
// --------------------------------------------------------------------
155
* Native PHP error handler
158
* @param string the error severity
159
* @param string the error string
160
* @param string the error filepath
161
* @param string the error line number
164
function show_php_error($severity, $message, $filepath, $line)
166
$severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity];
168
$filepath = str_replace("\\", "/", $filepath);
170
// For safety reasons we do not show the full file path
171
if (FALSE !== strpos($filepath, '/'))
173
$x = explode('/', $filepath);
174
$filepath = $x[count($x)-2].'/'.end($x);
177
if (ob_get_level() > $this->ob_level + 1)
182
include(APPPATH.'errors/error_php.php');
183
$buffer = ob_get_contents();
190
// END Exceptions Class
192
/* End of file Exceptions.php */
193
/* Location: ./system/core/Exceptions.php */
b'\\ No newline at end of file'