From cf3488bd68152a7c3322f26ebabe9e958f90695c Mon Sep 17 00:00:00 2001 From: s441433 Date: Fri, 11 Jan 2019 04:49:09 +0100 Subject: [PATCH] =?UTF-8?q?Create=20main=20=E2=80=94=20kopia.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main — kopia.go | 446 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 446 insertions(+) create mode 100644 main — kopia.go diff --git a/main — kopia.go b/main — kopia.go new file mode 100644 index 0000000..37eab85 --- /dev/null +++ b/main — kopia.go @@ -0,0 +1,446 @@ +package main + +import ( + "database/sql" + "fmt" + "html/template" + "log" + "net/http" + + //"net/url" + + //"time" + + _ "github.com/mattn/go-sqlite3" +) + +var ( + KosztBiletuSUMA int + + //zmiana pinu, hasła i blokada karty + pinFROMsite int + RFIDblockORno string + hasloFROMsite string + + //logowanie ------------ + loginFROMsite string + passwordFROMsite string + + //users --------------- + IDusers int + User string + Password string + PIN int + RFID int + Login string + Blokada bool + + //bilety --------------- + IDbiletu int + KtoZabralID int + DataCzas string + KosztBiletu int + CzyZaplacony string + + //dania --------------- + IDdania int + NazwaDania string + KosztDania int +) + +//const localHost = string("192.168.8.102:9197") + +//*************************************************************************** +//funkcje sterujące +//*************************************************************************** + +//############################################################################# +func opisStołówkaZPM(w http.ResponseWriter, r *http.Request) { + //fmt.Println(localHostDB) + t, _ := template.ParseFiles("StronaGlowna.gohtml") + t.Execute(w, nil) +} + +//############################################################################# +func panel(w http.ResponseWriter, r *http.Request) { + for _, cookie := range r.Cookies() { + fmt.Fprint(w, cookie.Name) + } + + fmt.Println("method:", r.Method) + t, _ := template.ParseFiles("panel.gtpl") + d := struct { + UserView string + }{ + UserView: User} + t.ExecuteTemplate(w, "panel.gtpl", d) +} + +//############################################################################# +func wylogowano(w http.ResponseWriter, r *http.Request) { + //-------------------------------------------------- + hasloFROMsite := r.FormValue("hasloFROMsite") + if hasloFROMsite != "" { + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr(err) + + akt, err := db.Prepare("UPDATE users SET Password=? WHERE IDusers=?") + checkErr(err) + up, err := akt.Exec(hasloFROMsite, IDusers) + checkErr(err) + dzialanie, err := up.RowsAffected() + checkErr(err) + fmt.Println(dzialanie) + + db.Close() + } + //-------------------------------------------------- + + t, _ := template.ParseFiles("wylogowano.gtpl") + type user struct { + UserView string + } + u := user{ + UserView: User} + t.ExecuteTemplate(w, "wylogowano.gtpl", u) +} + +//############################################################################# +func login(w http.ResponseWriter, r *http.Request) { + //************************************************************************** + loginFROMsite := r.FormValue("loginFROMsite") + passwordFROMsite := r.FormValue("passwordFROMsite") + + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr(err) + rows0, err := db.Query("SELECT * FROM users") + checkErr(err) + + for rows0.Next() { + err = rows0.Scan(&IDusers, &User, &Password, &PIN, &RFID, &Login, &Blokada) + checkErr(err) + if r.Method == "POST" { + if Login == loginFROMsite { + if Password == passwordFROMsite { + http.Redirect(w, r, "http://localhost:9197/panel", http.StatusSeeOther) + panel(w, r) + break + } + } + } + } + + if r.Method == "GET" { + t, _ := template.ParseFiles("login.gtpl") + t.Execute(w, nil) + r.ParseForm() + } + + 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 menuDan(w http.ResponseWriter, r *http.Request) { + t, _ := template.ParseFiles("menuDanNaglowek.gtpl") + d := struct { + UserView string + }{ + UserView: User} + t.ExecuteTemplate(w, "menuDanNaglowek.gtpl", d) + //dania ---------------------------------- + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr2(err) + rows2, err := db.Query("SELECT * FROM dania") + checkErr(err) + for rows2.Next() { + err = rows2.Scan(&IDdania, &NazwaDania, &KosztDania) + checkErr3(err) + //fmt.Printf("%d. %s, %d \n", IDdania, NazwaDania, KosztDania) + t, _ := template.ParseFiles("menuDan.gtpl") + d := struct { + IDdaniaView int + NazwaDaniaView string + KosztDaniaView int + }{ + IDdaniaView: IDdania, + NazwaDaniaView: NazwaDania, + KosztDaniaView: KosztDania} + t.ExecuteTemplate(w, "menuDan.gtpl", d) + } + //---------------------------------- + rows2.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, &KtoZabralID, &DataCzas, &KosztBiletu, &CzyZaplacony) + checkErr(err) + if KtoZabralID == IDusers { + t, _ := template.ParseFiles("historiaPosilkow.gtpl") + d := struct { + IDbiletuView int + KtoZabralView int + DataCzasView string + KosztBiletuView int + CzyZaplaconyView string + }{ + IDbiletuView: IDbiletu, + KtoZabralView: KtoZabralID, + DataCzasView: DataCzas, + KosztBiletuView: KosztBiletu, + CzyZaplaconyView: CzyZaplacony} + t.ExecuteTemplate(w, "historiaPosilkow.gtpl", d) + } + //---------------------------------- + } + rows3.Close() + db.Close() +} + +//############################################################################# +func platnosci(w http.ResponseWriter, r *http.Request) { + //fmt.Fprint(w, User) + + //bilety ---------------------------------- + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr(err) + rows5, err := db.Query("SELECT * FROM bilety WHERE KtoZabralID=?", IDusers) + checkErr(err) + KosztBiletuSUMA = 0 + for rows5.Next() { + err = rows5.Scan(&IDbiletu, &KtoZabralID, &DataCzas, &KosztBiletu, &CzyZaplacony) + checkErr3(err) + //if KtoZabralID == User { + if CzyZaplacony == "nie" { + KosztBiletuSUMA = KosztBiletu + KosztBiletuSUMA + } + //---------------------------------- + } + //fmt.Println(KosztBiletuSUMA) + t, _ := template.ParseFiles("platnosci.gtpl") + checkErr(err) + type zaplac struct { + UserView string + Zaplac int + } + z := zaplac{ + UserView: User, + Zaplac: KosztBiletuSUMA} + + t.ExecuteTemplate(w, "platnosci.gtpl", z) + rows5.Close() + db.Close() +} + +//############################################################################# +func placeOnline(w http.ResponseWriter, r *http.Request) { + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr(err) + rows5, err := db.Query("SELECT * FROM bilety WHERE KtoZabralID=?", IDusers) + checkErr(err) + KosztBiletuSUMA = 0 + for rows5.Next() { + err = rows5.Scan(&IDbiletu, &KtoZabralID, &DataCzas, &KosztBiletu, &CzyZaplacony) + checkErr3(err) + if CzyZaplacony == "nie" { + KosztBiletuSUMA = KosztBiletu + KosztBiletuSUMA + } + } + t, _ := template.ParseFiles("placeOnline.gtpl") + checkErr(err) + type zaplac struct { + UserView string + Zaplac int + } + z := zaplac{ + UserView: User, + Zaplac: KosztBiletuSUMA} + + t.ExecuteTemplate(w, "placeOnline.gtpl", z) + rows5.Close() + db.Close() +} + +//############################################################################# +func zaplacono(w http.ResponseWriter, r *http.Request) { + + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr(err) + + akt, err := db.Prepare("UPDATE bilety SET CzyZaplacony=? WHERE KtoZabralID=?") + checkErr(err) + up, err := akt.Exec("tak", KtoZabralID) + checkErr(err) + dzialanie, err := up.RowsAffected() + checkErr(err) + fmt.Println(dzialanie) + + db.Close() + + t, _ := template.ParseFiles("zaplacono.gtpl") + checkErr(err) + type zaplac struct { + UserView string + Zaplac int + } + z := zaplac{ + UserView: User, + Zaplac: KosztBiletuSUMA} + + t.ExecuteTemplate(w, "zaplacono.gtpl", z) + +} + +//############################################################################# +func zmianaPINU(w http.ResponseWriter, r *http.Request) { + pinFROMsite := r.FormValue("pinFROMsite") + RFIDblockORno := r.FormValue("RFID") + + t, _ := template.ParseFiles("zmianaPINU.gtpl") + type pinIblokada struct { + UserView string + } + wykonaj := pinIblokada{ + UserView: User} + t.ExecuteTemplate(w, "zmianaPINU.gtpl", wykonaj) + + if pinFROMsite != "" { + fmt.Fprintln(w, "*** --- Pin został POMYŚLNIE ZMIENIONY! --- *** \n") + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr(err) + + akt, err := db.Prepare("UPDATE users SET PIN=? WHERE IDusers=?") + checkErr(err) + up, err := akt.Exec(pinFROMsite, IDusers) + checkErr(err) + dzialanie, err := up.RowsAffected() + checkErr(err) + fmt.Println(dzialanie) + + db.Close() + + } + if RFIDblockORno == "RFIDblock" { + fmt.Fprintln(w, "*** --- Karta RFID została ZABLOKOWANA! --- *** \n") + + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr(err) + + akt, err := db.Prepare("UPDATE users SET Blokada=? WHERE IDusers=?") + checkErr(err) + up, err := akt.Exec("true", IDusers) + checkErr(err) + dzialanie, err := up.RowsAffected() + checkErr(err) + fmt.Println(dzialanie) + + db.Close() + + } else { + if RFIDblockORno == "RFIDunlock" { + fmt.Fprintln(w, "*** --- Karta RFID została ODBLOKOWANA! --- *** \n") + + db, err := sql.Open("sqlite3", "stolowkaZPM.db") + checkErr(err) + + akt, err := db.Prepare("UPDATE users SET Blokada=? WHERE IDusers=?") + checkErr(err) + up, err := akt.Exec("false", IDusers) + checkErr(err) + dzialanie, err := up.RowsAffected() + checkErr(err) + fmt.Println(dzialanie) + + db.Close() + + } + } +} + +//############################################################################# +func zmianaHasla(w http.ResponseWriter, r *http.Request) { + //templatka przekierowuje do funkcji wylogowano + t, _ := template.ParseFiles("zmianaHasla.gtpl") + type zmhaslo struct { + UserView string + } + wykonaj := zmhaslo{ + UserView: User} + t.ExecuteTemplate(w, "zmianaHasla.gtpl", wykonaj) +} + +//*************************************************************************** +//Obsługa błędów +//*************************************************************************** + +func checkErr(err error) { + if err != nil { + fmt.Println("Błąd") + } +} +func checkErr2(err error) { + if err != nil { + fmt.Println("Błąd dwa") + } +} +func checkErr3(err error) { + if err != nil { + fmt.Println("Błąd trzy") + } +} + +//*************************************************************************** +//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) + http.HandleFunc("/platnosci/placeOnline", placeOnline) + http.HandleFunc("/zaplacono", zaplacono) + http.HandleFunc("/wylogowano", wylogowano) + http.HandleFunc("/menuDan", menuDan) + http.HandleFunc("/zmianaPINU", zmianaPINU) + http.HandleFunc("/zmianaHasla", zmianaHasla) + + err := http.ListenAndServe(":9197", nil) + if err != nil { + log.Fatal("ListenAndServe: ", err) + } +}