POST vs. GET: Das Postboten-Modell für Formulare
Formulare verarbeiten
Du lernst, Benutzereingaben aus Formularen zu empfangen
POST vs. GET
Du verstehst die Unterschiede und weisst, wann du was verwendest
Daten validieren
Du kannst Eingaben pruefen und sicher verarbeiten
Bisher haben wir Variablen in PHP fest in den Code geschrieben ("Hardcoding"). In der Realität wollen wir aber, dass User auf unserer Website Daten in ein Formular eingeben und PHP diese Daten verarbeitet. Dafür müssen das HTML-Formular (Browser) und PHP (Server) miteinander sprechen. Es gibt dafür zwei primäre Transportwege: GET und POST.
Die Daten werden offen verschickt und oben an die URL (Webadresse) drangehängt. Jeder kann sie sehen.
Die Daten werden im Karton versteckt und unsichtbar im Hintergrund verschickt. Die URL bleibt völlig sauber.
Egal ob GET oder POST, das Formular braucht zwingend Namensschilder für PHP:
POST = unsichtbar, GET = in der URL).id ist PHP völlig egal!Sobald der User auf "Abschicken" klickt, nimmt PHP das Paket (oder die Postkarte) an:
Die goldene Regel: Das Wort innerhalb der Klammer bei $_POST['HIER'] muss exakt mit dem Wort im HTML beim Attribut name="HIER" übereinstimmen!
| Merkmal | GET (Postkarte) | POST (Paket) |
|---|---|---|
| Daten sichtbar? | ✅ Ja – in der URL | 🔒 Nein – versteckt im HTTP-Body |
| Als Link teilbar? | ✅ Ja | ❌ Nein |
| Datenmenge | ⚠️ Begrenzt (URL-Länge ~2000 Zeichen) | ✅ Unbegrenzt (auch Datei-Uploads) |
| PHP-Variable | $_GET['name'] | $_POST['name'] |
| Typischer Einsatz | Suche, Filter, Navigation | Login, Registrierung, Formulare |
Wenn wir eine Benutzereingabe direkt per echo ausgeben, öffnen wir ein Sicherheitsloch: Ein Angreifer könnte als Eingabe HTML- oder JavaScript-Code eintragen, der dann im Browser aller User ausgeführt wird. Das nennt man Cross-Site Scripting (XSS).
Unsicher (❌)
Sicher (✅)
htmlspecialchars() beim Ausgeben
Jede Variable, die aus einer Benutzereingabe ($_POST, $_GET) stammt und per echo ausgegeben wird, muss durch htmlspecialchars(). Das wandelt gefährliche Zeichen wie < und > in harmlose HTML-Entitäten um.
HTML-Formular
PHP-Auswertung (sicher)
GET-Daten lesen
XSS-Schutz
Dynamische Webseiten 2 | eduhigh.net | Seminarunterlagen