I want to take this input form 'email' value as a variable in Go. But I am unable to do so.
My html code:
<form class="login100-form validate-form" role="form"
action="/forgot" method="POST">
<input class="input100" type="email" name="email">
<input type="submit" value="Send Token" class="login100-form-btn"></form>
My golang code:
func main() {
router := newRouter()
router.HandleFunc("/forgot", forgotPageHandler)
}
func forgotPageHandler(writer http.ResponseWriter, request *http.Request) {
pInfo := PageInfo{
Title: "Forgot",
}
_, err := ActiveSession(writer, request)
if request.Method == "GET" {
fmt.Println("forgotGetHandler")
if err != nil {
generateHTML(writer, pInfo, "layout", "navPublic", "forgot")
} else {
generateHTML(writer, pInfo, "layout", "navPrivate", "forgot")
}
} else {
fmt.Println("forgotPostHandler")
request.ParseForm()
fmt.Println("email:", request.Form["email"])
}
}
My request.method = GET is working while POST is not even reaching in the else clause.
} else {
fmt.Println("forgotPostHandler")
request.ParseForm()
fmt.Println("email:", request.Form["email"]) // -- Problem is here
}
You are using requst.Form[xxx]. Use r.FormValue("email") instead of request.Form["email"]
You code should be
} else {
fmt.Println("forgotPostHandler")
request.ParseForm()
fmt.Println("email:", r.FormValue("email")) // -- Solution is here
}