Example #1
0
function error($code = 404, $message = '', $debug_info = '')
{
    View_Loader::get_instance()->set_path(CONTENTPATH . Router::get_content_prefix() . 'home');
    if (!language()) {
        Router::determine_language();
    }
    switch ($code) {
        case 404:
            header("X-Robots-Tag: noindex");
            header("HTTP/1.0 404 Not Found");
            echo view('errors/404');
            break;
        case 400:
            header("HTTP/1.0 400 Bad Request");
            echo view('errors/400');
            break;
        case 500:
            while (ob_get_level() > 1) {
                ob_end_clean();
            }
            header("HTTP/1.0 500 Internal Server Error");
            if (!stristr($_SERVER['HTTP_HOST'], 'fw4.be')) {
                $mailcontent = '';
                if ($message) {
                    $mailcontent .= "{$message}\n\n";
                }
                if ($debug_info) {
                    $mailcontent .= "{$debug_info}\n\n";
                }
                if (count($_POST)) {
                    $mailcontent .= "POST: " . print_r($_POST, true) . "\n\n";
                }
                $mailcontent .= print_r(debug_backtrace(), true);
                // Automatic error reporting disabled for now
                //mail('*****@*****.**', '['.$_SERVER['HTTP_HOST'].'] Error 500', $mailcontent);
            }
            echo view('errors/500', array('message' => $message, 'debug_info' => $debug_info));
            break;
    }
    exit;
}