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 validate_formatted_input($input, $form)
{
    $no_format_error = is_empty($_SESSION[$form["name"] . "_errors"]);
    foreach ($input as $name => $value) {
        $field = $form["fields"][$name];
        switch ($field["type"]) {
            case "id":
                foreach ($value as $id_value) {
                    if (!call_user_func("exists_" . $field["model"], $id_value)) {
                        add_form_error($form["name"], $name);
                    }
                }
                break;
            case "quantity":
                if ($value < $field["min"]) {
                    add_form_error($form["name"], $name, ucfirst($field["human_name"]) . " doit être supérieur à " . pretty_amount($field["min"], false) . ".");
                }
                if ($value > $field["max"]) {
                    add_form_error($form["name"], $name, ucfirst($field["human_name"]) . " doit être inférieur à " . pretty_amount($field["max"], false) . ".");
                }
                break;
            case "text":
                if (strlen($value) > $field["max"]) {
                    add_form_error($form["name"], $name, ucfirst($field["human_name"]) . " ne peut pas avoir plus de " . $field["max"] . " caractères.");
                }
                break;
            case "name":
                if (strlen($value) > $field["max"]) {
                    add_form_error($form["name"], $name, ucfirst($field["human_name"]) . " ne peut pas avoir plus de " . $field["max"] . " caractères.");
                }
                break;
            case "date":
                if (isset($field["min"]) && $value < $field["min"]) {
                    add_form_error($form["name"], $name, ucfirst($field["human_name"]) . " doit être après le " . pretty_date($field["min"]) . ".");
                }
                if (isset($field["max"]) && $value > $field["max"]) {
                    add_form_error($form["name"], $name, ucfirst($field["human_name"]) . " doit être avant le " . pretty_date($field["max"]) . ".");
                }
                break;
        }
    }
    if (isset($form["validations"]) && ($no_format_error || !is_empty($form["ignore_format_errors_for_validation"]))) {
        foreach ($form["validations"] as $validation) {
            add_form_error($form["name"], "", call_user_func($validation, $input));
        }
    }
    if (!isset($_POST["csrf_token"]) || !valid_csrf_token($_POST["csrf_token"])) {
        $_SESSION["error"][] = "Une erreur s'est produite. Tu peux réessayer de soumettre le formulaire.";
    }
    if (!is_empty($_SESSION["error"]) || !is_empty($_SESSION[$form["name"] . "_errors"])) {
        redirect_to_path($form["redirect_to_if_error"]);
    }
}
Example #3
0
function redirect_to_action($action)
{
    $path = path($action, $_GET["controller"], isset($GLOBALS[$_GET["controller"]]["id"]) && $_GET["action"] != "delete" && !in_array($action, array("new", "create", "index")) ? $GLOBALS[$_GET["controller"]]["id"] : "", isset($_GET["prefix"]) && $_GET["prefix"] == "binet" ? binet_prefix(binet, term) : "");
    redirect_to_path($path);
}