diff options
Diffstat (limited to 'src/application/mystic/forum')
| -rw-r--r-- | src/application/mystic/forum/utils/RequestUtils.php | 24 | 
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;      } |