package main import ( "log" "net/http" ) func IndexHandler(w http.ResponseWriter, r *http.Request) { session, err := store.Get(r, "_SID") if err != nil { log.Println(err) } flash := Flash{} flash.Error = session.Flashes("error") flash.Success = session.Flashes("success") index := mainTempl.Lookup("index.html") err = index.ExecuteTemplate(w, "index.html", flash) if err != nil { log.Println(err) http.Error(w, err.Error(), http.StatusInternalServerError) return } session.Save(r, w) } func CreateNewEntryHandler(w http.ResponseWriter, r *http.Request) { err := r.ParseForm() if err != nil { log.Panic(err) http.Error(w, err.Error(), http.StatusInternalServerError) return } req := Request{} err = decoder.Decode(&req, r.PostForm) if err != nil { log.Panic(err) http.Error(w, err.Error(), http.StatusInternalServerError) return } session, err := store.Get(r, "_SID") if err != nil { log.Println(err) } if !CompareStrings(req.Email, req.ConfirmEmail) { session.AddFlash("E-Mail don't match.", "error") session.Save(r, w) http.Redirect(w, r, "/", 302) return } if !CompareStrings(req.Password, req.ConfirmPassword) { session.AddFlash("Passwords don't match.", "error") session.Save(r, w) http.Redirect(w, r, "/", 302) return } req.Password = Md5Hash(req.Password) err = CreateNewEntry(req.Email, req.Password) if err != nil { session.AddFlash(err, "error") session.Save(r, w) http.Redirect(w, r, "/", 302) return } session.AddFlash("Success! You can login now with your new mail account.") session.Save(r, w) http.Redirect(w, r, "/", 302) }