package main import ( "database/sql" "fmt" "html/template" "log" "net/http" //"time" _ "github.com/mattn/go-sqlite3" ) //*************************************************************************** //funkcje sterujące //*************************************************************************** func opisStołówkaZPM(w http.ResponseWriter, r *http.Request) { t, _ := template.ParseFiles("StronaGlowna.gtpl") t.Execute(w, nil) } func panel(w http.ResponseWriter, r *http.Request) { //time.Sleep(3 * time.Second) //fmt.Println("method:", r.Method) //t, _ := template.ParseFiles("panel.gtpl") //t.Execute(w, nil) //*************************************************************************** db, err := sql.Open("sqlite3", "stolowkaZPM.db") checkErr(err) // query rows, err := db.Query("SELECT * FROM users") checkErr(err) var IDusers int var User string var Password string var PIN int var RFID int fmt.Fprintf(w, "Lista użytkowników:\n") for rows.Next() { err = rows.Scan(&IDusers, &User, &Password, &PIN, &RFID) checkErr(err) fmt.Printf("%d. %s, %s, %d, %d \n", IDusers, User, Password, PIN, RFID) fmt.Fprintf(w, "%d. %s \n", IDusers, User) } rows.Close() db.Close() //*************************************************************************** } func login(w http.ResponseWriter, r *http.Request) { //Here: fmt.Println("method:", r.Method) if r.Method == "GET" { t, _ := template.ParseFiles("login.gtpl") t.Execute(w, nil) } else { r.ParseForm() //fmt.Println("usernameFROMsite: ", r.Form["usernameFROMsite"]) //fmt.Println("passwordFROMsite: ", r.Form["passwordFROMsite"]) //if len(r.Form["usernameFROMsite"][0]) == 0 { // goto Here //} //if len(r.Form["passwordFROMsite"][0]) == 0 { // goto Here //} } usernameFROMsite := r.FormValue("usernameFROMsite") passwordFROMsite := r.FormValue("passwordFROMsite") zaloguj := "Zalogowano!" //*************************************************************************** db, err := sql.Open("sqlite3", "stolowkaZPM.db") checkErr(err) // query rows, err := db.Query("SELECT * FROM users") checkErr(err) var IDusers int var User string var Password string var PIN int var RFID int for rows.Next() { err = rows.Scan(&IDusers, &User, &Password, &PIN, &RFID) checkErr(err) //fmt.Printf("%d. %s, %s, %d, %d \n", IDusers, User, Password, PIN, RFID) //fmt.Fprint(w, IDusers) //fmt.Fprint(w, ". ") //fmt.Fprint(w, User) //fmt.Fprint(w, " \n") if r.Method == "POST" { if User == usernameFROMsite { if Password == passwordFROMsite { fmt.Fprintln(w, zaloguj) fmt.Fprintln(w, usernameFROMsite) //panel(w, r) break } } } } if r.Method == "POST" { if usernameFROMsite != User { t, _ := template.ParseFiles("login.gtpl") t.Execute(w, nil) fmt.Fprint(w, "*** UWAGA! *** Błąd logowania! *** Spróbuj ponownie. ***") } } rows.Close() db.Close() //*************************************************************************** } //*************************************************************************** //Bazy danych SQlite //*************************************************************************** func checkErr(err error) { if err != nil { fmt.Println("Błąd") } } //*************************************************************************** //funkcja główna //*************************************************************************** func main() { http.HandleFunc("/", opisStołówkaZPM) http.HandleFunc("/login", login) http.HandleFunc("/panel", panel) err := http.ListenAndServe(":9197", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } }