package main import ( "fmt" "net/http" ) // Handler Funktion anlegen // w = Antwort an Browser, r=Anfrage vom Client func workshopHandler(w http.ResponseWriter, r *http.Request) { // Prüfen auf POST, Fehler falls andere Methode if r.Method != http.MethodPost { http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) return } // ließt den Body des Requests ein und befüllt FormFalue(), sofern keine Fehler auftauchen err := r.ParseForm() if err != nil { http.Error(w, "Fehler beim Einlesen des Formulars", http.StatusBadRequest) } // Wenn Felder die als required markiert wurden leer sind: Fehlermeldung vorname := r.FormValue("vorname") if vorname == "" { http.Error(w, "Vorname fehlt", http.StatusBadRequest) return } nachname := r.FormValue("nachname") if nachname == "" { http.Error(w, "Nachname fehlt", http.StatusBadRequest) return } email := r.FormValue("email") if email == "" { http.Error(w, "E-Mail fehlt", http.StatusBadRequest) return } handy := r.FormValue("handy") // Checkboxen auslesen agb := r.FormValue("agb") if agb == "" { http.Error(w, "AGBs müssen akzeptiert werden", http.StatusBadRequest) return } // newsletter und equipment beliben leer, wenn nicht angehakt newsletter := r.FormValue("newsletter") equipment := r.FormValue("equipment") // Radio Buttons format := r.FormValue("format") if format == "" { http.Error(w, "Wählen sie ein Kursformat", http.StatusBadRequest) return } // Dropdown session := r.FormValue("session") if session == "" { http.Error(w, "Wählen sie eine Zeit aus", http.StatusBadRequest) return } fmt.Println("Vorname: ", vorname) fmt.Println("Nachname: ", nachname) fmt.Println("E-Mail: : ", email) fmt.Println("Telefon: ", handy) fmt.Fprintln(w, "POST Request funktioniert") } func main() { // Anfrage an Pfad in HTML /registrierung, worshop Handler wird aufgerufen http.HandleFunc("/registrierung", workshopHandler) fmt.Println("Server läuft auf http://localhost:8080") http.ListenAndServe(":8080", nil) }