📅 Buchungsformular
Ein sicheres Formular zur Terminreservierung
🎯 1. Ziel dieser Aufgabe
Du erstellst ein Buchungsformular für Termine (z. B. Beratung, Raumreservierung), das:
- Eingaben validiert (Name, E-Mail, Datum, Uhrzeit)
- Daten in einer Datenbank speichert
- Eine Bestätigungsseite anzeigt
- Gegen Doppelbuchungen geschützt ist
Du kannst wählen: PHP mit XAMPP oder Node.js mit Express.
🛠️ 2. Vorbereitung
- Erstelle einen eigenen Projektordner:
- PHP:C:\xampp\htdocs\schueler-max\buchung\
- Node.js:C:\NodeJS\schueler-max\buchung\ - Richte eine Datenbank
buchung_dbin phpMyAdmin ein - Lege eine Tabelle
terminean mit:
id (INT, AI, PK),name (VARCHAR 100),email (VARCHAR 150),datum (DATE),uhrzeit (TIME)
📝 3. Anforderungen
Das Formular muss enthalten:
- Name (Pflicht, min. 2 Zeichen)
- E-Mail (Pflicht, gültiges Format)
- Datum (ab heute, Pflicht)
- Uhrzeit (Pflicht, z. B. 09:00, 10:00, ..., 17:00)
- Absende-Button
Das Backend muss:
- Serverseitig prüfen, ob der Termin bereits belegt ist
- Mit Prepared Statements in die Datenbank speichern
- Fehler anzeigen (z. B. „Termin bereits vergeben“)
- Bei Erfolg eine Bestätigungsseite zeigen
🔒 4. Sicherheitsanforderungen
- ✅ Alle Eingaben serverseitig validieren
- ✅ Prepared Statements bei allen Datenbankoperationen
- ✅
htmlspecialchars()(PHP) oder Escaping (Node.js) bei Ausgabe - ✅ UTF-8 überall (Datenbank, Verbindung, HTML)
- ❌ Keine direkte SQL-Einbettung von Benutzereingaben
🧠 5. KI-Prompt-Training
Aufgabe: Beantworte auf Papier:
- Warum ist eine serverseitige Prüfung auf Doppelbuchungen nötig?
- Was passiert, wenn du das Datum nicht validierst?
- Wie würdest du einem Anfänger erklären, warum Zeitplanung wichtig ist?
Danach formuliere einen Prompt, mit dem du KI um Hilfe bitten würdest, um zu entscheiden, ob du für dieses Projekt PHP oder Node.js verwenden solltest.
✅ 6. Abgabe
Lade folgende Dateien in deinen OneDrive-Ordner hoch:
- Alle HTML-, CSS-, JS- und Backend-Dateien
package.json(bei Node.js)- Screenshot des Buchungsformulars
- Screenshot der Bestätigungsseite
- Screenshot einer Fehlermeldung (z. B. Doppelbuchung)
Erstelle einen Freigabelink auf den gesamten Ordner und gib ihn in Moodle ab.