function header_if($test, $status, $no_exit = false)
{
    if ($test) {
        switch ($status) {
            case 400:
                $header = "400 Bad Request";
                break;
            case 401:
                $header = "401 Unauthorized";
                break;
            case 403:
                $header = "403 Forbidden";
                break;
            case 404:
                $header = "404 Not Found";
                break;
            case 500:
                $header = "500 Server Error";
                break;
        }
        header("HTTP/1.1 " . $header);
        if (!isset($_SESSION["known_rejected_url"]) || $_SERVER["REQUEST_URI"] != $_SESSION["known_rejected_url"]) {
            urlrewrite();
            $_SESSION["known_rejected_url"] = $_SERVER["REQUEST_URI"];
            redirect_to_path($_SERVER["REQUEST_URI"]);
        } else {
            unset($_SESSION["known_rejected_url"]);
        }
        if (STATE == "development") {
            echo "\$_GET : ";
            var_dump($_GET);
            echo "\$_SESSION : ";
            var_dump($_SESSION);
            echo "\$_POST : ";
            var_dump($_POST);
            $backtrace = debug_backtrace();
            if (isset($backtrace[1])) {
                echo "Appelé par : ";
                var_dump($backtrace[1]["function"]);
            }
        } elseif (!is_empty($_SERVER["HTTP_REFERER"])) {
            mail_with_headers(WEBMASTER_EMAIL, get_bug_reference() . " Status " . $status . " : '" . $header . "'", "Requested URL : " . $_SERVER["REQUEST_URI"] . "<br>Previous URL : " . $_SERVER["HTTP_REFERER"]) . "<br>" . nl2br(get_debug_context());
        }
        $_GET["controller"] = "error";
        $_GET["action"] = $status;
        unset($_GET["prefix"]);
        include LAYOUT_PATH . "application.php";
        if (!$no_exit) {
            exit;
        }
    }
}
Example #2
0
function send_error_by_mail($error)
{
    $errno = $error["type"];
    $errfile = $error["file"];
    $errline = $error["line"];
    $errstr = $error["message"];
    $trace = print_r(debug_backtrace(false), true);
    $content = "<table><thead bgcolor='#c8c8c8'><th>Item</th><th>Description</th></thead><tbody>";
    $content .= "<tr valign='top'><td><b>Error</b></td><td><pre>{$errstr}</pre></td></tr>";
    $content .= "<tr valign='top'><td><b>Errno</b></td><td><pre>{$errno}</pre></td></tr>";
    $content .= "<tr valign='top'><td><b>File</b></td><td>{$errfile}</td></tr>";
    $content .= "<tr valign='top'><td><b>Line</b></td><td>{$errline}</td></tr>";
    $content .= "<tr valign='top'><td><b>Trace</b></td><td><pre>{$trace}</pre></td></tr>";
    $content .= "<tr valign='top'><td><b>Context</b></td><td><pre>" . nl2br(get_debug_context()) . "</pre></td></tr>";
    $content .= "</tbody></table>";
    return mail_with_headers(WEBMASTER_EMAIL, "Error " . $errno . " : '" . $errstr . "'", $content);
}