summaryrefslogtreecommitdiff
path: root/src/application/mystic/forum/utils/RequestUtils.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/application/mystic/forum/utils/RequestUtils.php')
-rw-r--r--src/application/mystic/forum/utils/RequestUtils.php24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/application/mystic/forum/utils/RequestUtils.php b/src/application/mystic/forum/utils/RequestUtils.php
index 6599052..796a476 100644
--- a/src/application/mystic/forum/utils/RequestUtils.php
+++ b/src/application/mystic/forum/utils/RequestUtils.php
@@ -10,6 +10,8 @@ use mystic\forum\orm\User;
final class RequestUtils {
use StaticClass;
+ private static ?string $formErrorDestination = null;
+
public static function getRequestMethod(): string {
return strtoupper($_SERVER["REQUEST_METHOD"] ?? "GET");
}
@@ -27,12 +29,12 @@ final class RequestUtils {
}
}
- public static function getRequiredField(string $field): string {
+ public static function getRequiredField(string $field, string $formId): string {
$fieldValue = $_POST[$field] ?? null;
if ($fieldValue === null) {
//http_response_code(400);
//Messaging::error("Missing required field $field");
- RequestUtils::triggerFormError("Missing required field '$field'");
+ RequestUtils::triggerFormError("Missing required field '$field'", $formId);
//exit;
}
return $fieldValue;
@@ -43,18 +45,24 @@ final class RequestUtils {
$_SESSION["lastForm_uri"] = $_SERVER["REQUEST_URI"];
}
- public static function triggerFormError(string $message, ?string $next = null): never {
- $next ??= $_SERVER["REQUEST_URI"];
- $_SESSION["formError"] = $message;
+ public static function setFormErrorDestination(?string $dest): ?string {
+ $prev = self::$formErrorDestination;
+ self::$formErrorDestination = $dest;
+ return $prev;
+ }
+
+ public static function triggerFormError(string $message, string $formId, ?string $next = null): never {
+ $next ??= self::$formErrorDestination ?? $_SERVER["REQUEST_URI"];
+ $_SESSION["formError/$formId"] = $message;
// store last form submission
self::storeForm();
header("Location: $next");
exit;
}
- public static function getAndClearFormError(): ?string {
- $err = $_SESSION["formError"] ?? null;
- unset($_SESSION["formError"]);
+ public static function getAndClearFormError(string $formId): ?string {
+ $err = $_SESSION["formError/$formId"] ?? null;
+ unset($_SESSION["formError/$formId"]);
return $err;
}