From 3f46159f1e80490729671dc61a2f94acd95482a9 Mon Sep 17 00:00:00 2001
From: Miraty
Date: Wed, 7 Sep 2022 18:44:49 +0200
Subject: [PATCH] Display page even if errors, recursive executePage()
---
fn/common.php | 18 ++++++++++++------
html.php | 3 +++
router.php | 8 +++++---
3 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/fn/common.php b/fn/common.php
index 46002fc..7d94f68 100644
--- a/fn/common.php
+++ b/fn/common.php
@@ -1,27 +1,33 @@
\n";
- closeHTML();
+ $final_message = "\n";
}
// When the user requests something unexpected
function userError($msg) {
+ global $final_message;
+ $final_message = "\n";
http_response_code(403);
- echo "\n";
- closeHTML();
+ executePage();
}
// When the system did something unexpected
function serverError($msg) {
+ global $final_message;
+ $final_message = "\n";
http_response_code(500);
error_log("Niver internal error: " . strip_tags($msg));
- echo "\n";
- closeHTML();
+ executePage();
}
function processForm($requireLogin = true) {
+ if (http_response_code() !== 200)
+ return false;
if (empty($_POST) AND $requireLogin AND !isset($_SESSION['username']))
echo 'Ce formulaire ne sera pas accepté car il faut se connecter avant.
';
if (empty($_POST))
diff --git a/html.php b/html.php
index 647e1d4..b52a359 100644
--- a/html.php
+++ b/html.php
@@ -71,6 +71,9 @@ if (empty($_POST) === false AND (isset($_SERVER['HTTP_SEC_FETCH_SITE']) !== true
userError("Anti-CSRF verification failed ! (Wrong or unset Sec-Fetch-Site
HTTP header)");
function closeHTML() {
+ global $final_message;
+ if (isset($final_message))
+ echo $final_message;
?>