package main import ( "database/sql" "fmt" "html/template" "log" "net/http" //"net/url" //"time" _ "github.com/mattn/go-sqlite3" ) //logowanie ------------ var loginFROMsite string var passwordFROMsite string var UserView string //users --------------- var IDusers int var User string var Password string var PIN int var RFID int var Login string var Blokada bool var Koszt int //bilety --------------- var IDbiletu int var KtoZabral string var DataCzas string var KosztBiletu int //dania --------------- var IDdania int var NazwaDania string var KosztDania int //*************************************************************************** //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) { //Here: //time.Sleep(3 * time.Second) /* //bilety ---------------------------------- db, err := sql.Open("sqlite3", "stolowkaZPM.db") checkErr(err) rows1, err := db.Query("SELECT * FROM bilety") checkErr(err) fmt.Fprintf(w, "Lista zabranych biletów: \n") for rows1.Next() { err = rows1.Scan(&IDbiletu, &KtoZabral, &DataCzas, &KosztBiletu) checkErr(err) fmt.Printf("%d. %s, %s, %d \n", IDbiletu, KtoZabral, DataCzas, KosztBiletu) } //---------------------------------- //dania ---------------------------------- rows2, err := db.Query("SELECT * FROM dania") checkErr(err) fmt.Fprintf(w, "Lista dań: \n") for rows2.Next() { err = rows2.Scan(&IDdania, &NazwaDania, &KosztDania) checkErr(err) fmt.Printf("%d. %s, %d \n", IDdania, NazwaDania, KosztDania) } //---------------------------------- rows1.Close() rows2.Close() db.Close() */ fmt.Println("method:", r.Method) t, _ := template.ParseFiles("panel.gtpl") d := struct { UserView string }{ UserView: User} t.ExecuteTemplate(w, "panel.gtpl", d) } //############################################################################# func login(w http.ResponseWriter, r *http.Request) { loginFROMsite := r.FormValue("loginFROMsite") passwordFROMsite := r.FormValue("passwordFROMsite") //zaloguj := "Zalogowano!" //************************************************************************** db, err := sql.Open("sqlite3", "stolowkaZPM.db") checkErr(err) // query rows0, err := db.Query("SELECT * FROM users") checkErr(err) for rows0.Next() { err = rows0.Scan(&IDusers, &User, &Password, &PIN, &RFID, &Login, &Blokada, &Koszt) checkErr(err) //fmt.Printf("%d. %s, %s, %d, %d, %s, %d, %d \n", IDusers, User, Password, PIN, RFID, Login, Blokada, Koszt) //fmt.Fprint(w, IDusers) //fmt.Fprint(w, ". ") //fmt.Fprint(w, User) //fmt.Fprint(w, " \n") //if r.Method == "POST" { if Login == loginFROMsite { if Password == passwordFROMsite { //fmt.Fprintln(w, zaloguj) //fmt.Fprintln(w, usernameFROMsite) //time.Sleep(3 * time.Second) //if zaloguj == "Zalogowano!" http.Redirect(w, r, "http://localhost:9197/panel", http.StatusSeeOther) panel(w, r) break } } //} } 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 //} } //obsługa blędnego wpisania loginu lub hasła if r.Method == "POST" { if loginFROMsite != Login { if loginFROMsite == "" { if passwordFROMsite != Password { t, _ := template.ParseFiles("login.gtpl") t.Execute(w, nil) fmt.Fprint(w, "*** UWAGA! *** Błąd logowania! Login lub hasło nieprawidłowe. *** Spróbuj ponownie. ***") } } else { if passwordFROMsite != Password { t, _ := template.ParseFiles("login.gtpl") t.Execute(w, nil) fmt.Fprint(w, "*** UWAGA! *** Błąd logowania! Login lub hasło nieprawidłowe. *** Spróbuj ponownie. ***") } } } } rows0.Close() db.Close() //************************************************************************** } //############################################################################# func historiaPosilkow(w http.ResponseWriter, r *http.Request) { t, _ := template.ParseFiles("historiaPosilkowNaglowek.gtpl") d := struct { UserView string }{ UserView: User} t.ExecuteTemplate(w, "historiaPosilkowNaglowek.gtpl", d) //bilety ---------------------------------- db, err := sql.Open("sqlite3", "stolowkaZPM.db") checkErr(err) rows3, err := db.Query("SELECT * FROM bilety") checkErr(err) for rows3.Next() { err = rows3.Scan(&IDbiletu, &KtoZabral, &DataCzas, &KosztBiletu) checkErr(err) if KtoZabral == User { t, _ := template.ParseFiles("historiaPosilkow.gtpl") d := struct { IDbiletuView int KtoZabralView string DataCzasView string KosztBiletuView int }{ IDbiletuView: IDbiletu, KtoZabralView: KtoZabral, DataCzasView: DataCzas, KosztBiletuView: KosztBiletu} t.ExecuteTemplate(w, "historiaPosilkow.gtpl", d) } //---------------------------------- } rows3.Close() db.Close() } //############################################################################# func platnosci(w http.ResponseWriter, r *http.Request) { t, _ := template.ParseFiles("platnosci.gtpl") d := struct { UserView string }{ UserView: User} t.ExecuteTemplate(w, "platnosci.gtpl", d) //bilety ---------------------------------- db, err := sql.Open("sqlite3", "stolowkaZPM.db") checkErr(err) rows4, err := db.Query("SELECT * FROM bilety") checkErr(err) for rows4.Next() { err = rows4.Scan(&IDbiletu, &KtoZabral, &DataCzas, &KosztBiletu) checkErr(err) if KtoZabral == User { t, _ := template.ParseFiles("platnosci.gtpl") d := struct { IDbiletuView int KtoZabralView string DataCzasView string KosztBiletuView int }{ IDbiletuView: IDbiletu, KtoZabralView: KtoZabral, DataCzasView: DataCzas, KosztBiletuView: KosztBiletu} t.ExecuteTemplate(w, "platnosci.gtpl", d) } //---------------------------------- } rows4.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) http.HandleFunc("/historiaPosilkow", historiaPosilkow) http.HandleFunc("/platnosci", platnosci) err := http.ListenAndServe(":9197", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } }