forked from WEB-IMB-WS2526/lab-development-imb
48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
)
|
|
|
|
type formExampleHandler int
|
|
|
|
func (formHandler formExampleHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
|
|
if r.Method != http.MethodPost {
|
|
http.Error(w, "Only POST requests are allowed", http.StatusMethodNotAllowed)
|
|
return
|
|
}
|
|
|
|
// Formulardaten parsen und Überprüfen, ob ungültige Formulardaten gesendet wurde
|
|
if err := r.ParseForm(); err != nil {
|
|
http.Error(w, "Fehler beim Parsen des Formulars", http.StatusBadRequest)
|
|
return
|
|
}
|
|
|
|
// Überprüfen, ob leeres Formular gesendet wurde
|
|
if len(r.PostForm) == 0 {
|
|
http.Error(w, "Kein POST-Formular gesendet", http.StatusBadRequest)
|
|
return
|
|
}
|
|
|
|
// Zugriff auf PostForm-Daten
|
|
// string mit Wert des Feldes "name"
|
|
name := r.PostForm.Get("name")
|
|
// []string mit allen ausgewählten Werten der Checkbox "hobby"
|
|
hobbies := r.PostForm["hobby"]
|
|
|
|
// Ausgabe der Werte
|
|
fmt.Fprintf(w, "Name: %s\n", name)
|
|
fmt.Fprintf(w, "Hobbies:\n")
|
|
for _, h := range hobbies {
|
|
fmt.Fprintf(w, "- %s\n", h)
|
|
}
|
|
|
|
}
|
|
|
|
func main() {
|
|
var r formExampleHandler
|
|
http.ListenAndServe("localhost:8080", r)
|
|
}
|