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; } } }
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"]); } }
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); }