PHP im Backend: Was passiert nach dem Absenden eines Formulars?
Zwischen dem Klick auf „Senden“ und der Rückmeldung liegen mehrere Schritte, die niemand sieht. Wer sie kennt, versteht, warum Eingaben zweimal geprüft werden, woher Fehlermeldungen kommen und weshalb ein Formular mehr Arbeit ist als ein Formular.
Das lernen Sie
Sechs Schritte, jedes Mal
Eine abgeschickte Formulareingabe durchläuft auf dem Server typischerweise dieselbe Kette. Bei Schnittstellen mit Token-Anmeldung entfällt die Herkunftsprüfung des Formulars, dafür steht die Prüfung des Tokens am Anfang. Die Reihenfolge ist nicht beliebig: jeder Schritt setzt voraus, dass der vorherige gelungen ist.
- 1AnnehmenDie Anfrage wird dem richtigen Programmteil zugeordnet.
- 2Herkunft prüfenKommt das Formular wirklich von dieser Anwendung?
- 3Rechte prüfenDarf diese angemeldete Person das überhaupt?
- 4Eingaben prüfenPflichtfelder, Formate, fachliche Regeln.
- 5VerarbeitenSpeichern, berechnen, weitergeben.
- 6AntwortenErfolgsmeldung, neuer Stand oder Fehlerhinweis.
Zweimal prüfen ist kein Versehen
Viele Masken weisen schon beim Tippen auf eine fehlende Angabe hin. Das ist eine Bedienhilfe und läuft im Browser. Verbindlich ist sie nicht: ein Browser ist ein Programm auf einem fremden Gerät, und eine Anfrage lässt sich auch ohne ihn abschicken.
Deshalb prüft der Server dieselben Regeln noch einmal — und nur dieses Ergebnis entscheidet. Wenn Sie eine Anwendung beauftragen, ist das ein guter Prüfpunkt: lässt sich ein Pflichtfeld umgehen, wenn man die Hilfe im Browser abschaltet, fehlt die eigentliche Prüfung.
Ein Sonderfall sind fachliche Regeln, die nur der Server kennen kann: ob ein Zeitraum noch frei ist, ob ein Guthaben ausreicht, ob eine Nummer schon existiert. Diese Prüfungen können im Browser gar nicht stattfinden, weil die Antwort von Daten abhängt, die dort nicht liegen.
Der Fehlerfall gehört zur Funktion
Eine Maske wird nicht daran gemessen, wie sie sich bei korrekter Eingabe verhält, sondern bei falscher. Drei Dinge sollten zuverlässig funktionieren:
Der letzte Punkt ist der wichtigste und der teuerste. Wenn ein Vorgang mehrere Datensätze berührt, etwa einen Auftrag und seine Positionen, muss ein Abbruch in der Mitte sauber zurückgenommen werden. Sonst entstehen Bestände, die niemand erklären kann.
Ein Beispiel aus der Praxis
Eine Anfrage, die zweimal ankommt
Ein Besucher klickt auf „Senden“, die Antwort dauert, er klickt erneut. Ohne Vorsorge entstehen zwei identische Vorgänge — und jemand ruft zweimal zurück. Abhilfe schaffen eine eindeutige Kennung je Absendevorgang, eine Prüfung auf kurz zuvor eingegangene gleiche Inhalte und eine Oberfläche, die die Schaltfläche nach dem ersten Klick sperrt.
Technisch ist das eine kleine Ergänzung. Sie fällt nur dann auf, wenn sie fehlt — und zwar beim Kunden, nicht im Test.
Was nach dem Speichern passiert
Mit dem Speichern ist der Vorgang selten zu Ende. Es folgen Benachrichtigungen, Übertragungen in andere Systeme, Protokolleinträge. Diese Nacharbeiten haben eine Eigenschaft, die man einplanen muss: sie können fehlschlagen, ohne dass der Benutzer etwas davon merkt.
Deshalb gehört zu jedem solchen Schritt die Frage, was bei einem Fehlschlag passiert — erneut versuchen, jemanden informieren oder bewusst übergehen. Eine Mail, die nicht ankommt, ist kein technisches Detail, sondern eine nicht bearbeitete Anfrage.
Woran man gute Arbeit erkennt
Häufige Missverständnisse
Weiterführende Quellen
- PHP-Handbuch: Formularverarbeitung Grundlagen aus der offiziellen Dokumentation
- PHP-Handbuch: Filter und Prüfung von Eingaben die eingebauten Prüffunktionen
Über den Autor
Fabian Lücker ist geschäftsführender Gesellschafter der PHP-Schmiede KG in Rheine und seit 2007 in der Softwareentwicklung tätig. Er verantwortet Entwicklung und Konzeption und schreibt hier über Entscheidungen, die in echten Projekten anfallen.
Eine Maske, die mehr können muss?
Beschreiben Sie den Ablauf in Ihren Worten — die technischen Regeln dahinter klären wir gemeinsam.