Erorr handling update

This commit is contained in:
Michael Foster 2013-08-03 02:01:52 -04:00
parent 784c3ffadb
commit 056a6001ac
4 changed files with 25 additions and 20 deletions

View File

@ -122,13 +122,13 @@ function query($query) {
}
function db_error($PDOStatement = null) {
global $pdo;
global $pdo, $db_error;
if (isset($PDOStatement)) {
$err = $PDOStatement->errorInfo();
return $err[2];
$db_error = $PDOStatement->errorInfo();
return $db_error[2];
}
$err = $pdo->errorInfo();
return $err[2];
$db_error = $pdo->errorInfo();
return $db_error[2];
}

View File

@ -58,7 +58,7 @@ function createBoardlist($mod=false) {
}
function error($message, $priority = true, $debug_stuff = false) {
global $board, $mod, $config;
global $board, $mod, $config, $db_error;
if ($config['syslog'] && $priority !== false) {
// Use LOG_NOTICE instead of LOG_ERR or LOG_WARNING because most error message are not significant.
@ -70,6 +70,10 @@ function error($message, $priority = true, $debug_stuff = false) {
die('Error: ' . $message . "\n");
}
if ($config['debug'] && isset($db_error)) {
$debug_stuff = array_combine(array('SQLSTATE', 'Error code', 'Error message'), $db_error);
}
die(Element('page.html', array(
'config' => $config,
'title' => _('Error'),

View File

@ -155,19 +155,9 @@ function loadConfig() {
}
if ($config['verbose_errors']) {
set_error_handler(function($errno, $errstr, $errfile, $errline) {
if (error_reporting() == 0)
return false; // Looks like this warning was suppressed by the @ operator.
error(utf8tohtml($errstr), true, array(
'file' => $errfile,
'line' => $errline,
'errno' => $errno,
'error' => $errstr,
'backtrace' => array_slice(debug_backtrace(), 1)
));
});
set_error_handler('verbose_error_handler');
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('display_errors', false);
ini_set('html_errors', false);
}
@ -244,6 +234,17 @@ function _syslog($priority, $message) {
}
}
function verbose_error_handler($errno, $errstr, $errfile, $errline) {
if (error_reporting() == 0)
return false; // Looks like this warning was suppressed by the @ operator.
error(utf8tohtml($errstr), true, array(
'file' => $errfile . ':' . $errline,
'errno' => $errno,
'error' => $errstr,
'backtrace' => array_slice(debug_backtrace(), 1)
));
}
function create_antibot($board, $thread = null) {
require_once dirname(__FILE__) . '/anti-bot.php';

View File

@ -23,7 +23,7 @@ $query = isset($_SERVER['QUERY_STRING']) ? urldecode($_SERVER['QUERY_STRING']) :
$pages = array(
'' => ':?/', // redirect to dashboard
'/' => 'dashboard', // dashboard
'/confirm/(.+)' => 'confirm', // confirm action (if javascript didn't work)
'/confir(m/(.+)' => 'confirm', // confirm action (if javascript didn't work)
'/logout' => 'logout', // logout
'/users' => 'users', // manage users