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 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); }
function send_email($to, $subject, $file, $parameters) { $student = select_student($to, array("email", "name")); $to = $student["name"] . " <" . (STATE == "development" ? WEBMASTER_EMAIL : $student["email"]) . ">"; ob_start(); $GLOBALS["full_path_links"] = true; ?> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""> <title>Balise trézo</title> <link rel="shortcut icon" type="image/png" href="<?php echo full_path(IMG_PATH . "balise.png"); ?> "> <link rel="stylesheet" href="<?php echo full_path(ASSET_PATH . "dist/css/bootstrap.min.css"); ?> "> <link rel="stylesheet" href="<?php echo full_path(ASSET_PATH . "dist/css/bootstrap-theme.min.css"); ?> "> <link rel="stylesheet" type="text/css" href="<?php echo full_path(ASSET_PATH . "css/email.css"); ?> "> <!--[if IE]> <script src="https://cdn.jsdelivr.net/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://cdn.jsdelivr.net/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <!-- Wrap tout le contenu de la page --> <div id="wrap"> <img id="entete" alt="balise" src="<?php echo full_path(IMG_PATH . "balise.png"); ?> "> <!-- Création d'un header --> <header class="masthead"> <div class="container"> <div id="tete" class="row"> <div class="col-xs-offset-3 col-xs-9 col-sm-offset-2 col-md-offset-1"> <h1>Balise</h1> <p class="lead">Trézo facile</p> </div> <!-- Fermeture de la colonne --> </div> <!-- Fermeture de la ligne --> </div> <!-- Fermeture container --> </header> <!-- Fermeture du header --> <div id="message" class="row"> <div class="col-md-offset-1 col-md-10"> <?php include EMAIL_PATH . $file . ".php"; // $parameters are used in this file ?> </div> </div> </div> <!-- Fermeture du wrap --> </body> </html> <?php unset($GLOBALS["full_path_links"]); $message = ob_get_clean(); return mail_with_headers($to, $subject, $message); }