Symptom: Nach dem Login-Formular-Submit dreht der Button-Spinner endlos. Im Netzwerk-Tab: POST /system/login.php?mode=check → 403
Ursache: Admidio 5 sendet alle Formulare per AJAX als multipart/form-data (FormData in formSubmit(), system/js/common_functions.js). Der Webserver/WAF des Hosters blockiert alle POST-Requests mit Content-Type multipart/form-data mit 403 – unabhängig vom Inhalt (Admidio selbst antwortet nie mit 403, sondern immer mit HTTP 200 + JSON).
Nachweis per curl:
POST -d "test=1" → 200 (urlencoded geht durch)
POST -F "test=1" → 403 (multipart wird geblockt)
vorläufige Lösung: In formSubmit() Formulare ohne Datei-Upload als x-www-form-urlencoded senden ($form.serialize() statt FormData), nur Formulare mit Datei-Input als multipart. Dadurch funktionieren Login und alle normalen Formulare wieder. Datei-Uploads (Fotos, Dokumente) bleiben vom Hoster-Block betroffen – nur durch Freischaltung der Regel beim Hoster zu lösen.
common_functions.js Zeile 595ff:
Code: Alles auswählen
var $form = $(this);
// forms with file uploads must be submitted as multipart/form-data, all other forms
// will be submitted as urlencoded because some webservers/WAFs block multipart requests
var isMultipart = ($form.attr("enctype") === "multipart/form-data") || ($form.find("input[type=file]").length > 0);
$.post({
url: $form.attr("action"),
data: isMultipart ? new FormData($form[0]) : $form.serialize(),
processData: !isMultipart,
contentType: isMultipart ? false : "application/x-www-form-urlencoded; charset=UTF-8",