2018-11-21 23:47:31 +01:00
|
|
|
package main
|
2018-11-20 22:17:07 +01:00
|
|
|
|
2018-12-10 15:52:29 +01:00
|
|
|
import (
|
2018-12-28 22:10:55 +01:00
|
|
|
"database/sql"
|
2018-12-10 15:52:29 +01:00
|
|
|
"fmt"
|
|
|
|
"html/template"
|
|
|
|
"log"
|
|
|
|
"net/http"
|
2018-12-28 22:10:55 +01:00
|
|
|
|
2018-12-29 16:02:40 +01:00
|
|
|
//"net/url"
|
|
|
|
|
2018-12-29 04:54:47 +01:00
|
|
|
//"time"
|
|
|
|
|
2018-12-28 22:10:55 +01:00
|
|
|
_ "github.com/mattn/go-sqlite3"
|
2018-12-10 15:52:29 +01:00
|
|
|
)
|
2018-11-21 23:47:31 +01:00
|
|
|
|
2019-01-03 23:57:38 +01:00
|
|
|
var (
|
2019-01-04 17:58:41 +01:00
|
|
|
KosztBiletuSUMA int
|
2019-01-03 23:57:38 +01:00
|
|
|
|
|
|
|
//logowanie ------------
|
|
|
|
loginFROMsite string
|
|
|
|
passwordFROMsite string
|
|
|
|
|
|
|
|
//users ---------------
|
|
|
|
IDusers int
|
|
|
|
User string
|
|
|
|
Password string
|
|
|
|
PIN int
|
|
|
|
RFID int
|
|
|
|
Login string
|
|
|
|
Blokada bool
|
|
|
|
Koszt int
|
|
|
|
|
|
|
|
//bilety ---------------
|
|
|
|
IDbiletu int
|
|
|
|
KtoZabral string
|
|
|
|
DataCzas string
|
|
|
|
KosztBiletu int
|
|
|
|
CzyZaplacony bool
|
|
|
|
|
|
|
|
//dania ---------------
|
|
|
|
IDdania int
|
|
|
|
NazwaDania string
|
|
|
|
KosztDania int
|
|
|
|
)
|
|
|
|
|
|
|
|
//const localHost = string("192.168.8.102:9197")
|
2018-12-29 16:02:40 +01:00
|
|
|
|
2018-12-29 00:08:27 +01:00
|
|
|
//***************************************************************************
|
|
|
|
//funkcje sterujące
|
|
|
|
//***************************************************************************
|
2019-01-03 23:57:38 +01:00
|
|
|
|
2018-12-29 16:02:40 +01:00
|
|
|
//#############################################################################
|
2018-12-27 21:58:43 +01:00
|
|
|
func opisStołówkaZPM(w http.ResponseWriter, r *http.Request) {
|
2019-01-03 23:57:38 +01:00
|
|
|
//fmt.Println(localHostDB)
|
2019-01-04 17:58:41 +01:00
|
|
|
t, _ := template.ParseFiles("StronaGlowna.gohtml")
|
|
|
|
t.Execute(w, nil)
|
2018-12-29 01:36:46 +01:00
|
|
|
}
|
2018-12-29 00:08:27 +01:00
|
|
|
|
2018-12-29 16:02:40 +01:00
|
|
|
//#############################################################################
|
2018-12-29 01:36:46 +01:00
|
|
|
func panel(w http.ResponseWriter, r *http.Request) {
|
2018-12-29 16:02:40 +01:00
|
|
|
//Here:
|
2018-12-29 04:54:47 +01:00
|
|
|
//time.Sleep(3 * time.Second)
|
2018-12-29 01:36:46 +01:00
|
|
|
|
2019-01-02 01:13:39 +01:00
|
|
|
/*
|
|
|
|
//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()
|
|
|
|
*/
|
2019-01-02 16:32:13 +01:00
|
|
|
for _, cookie := range r.Cookies() {
|
|
|
|
fmt.Fprint(w, cookie.Name)
|
|
|
|
}
|
2019-01-02 01:13:39 +01:00
|
|
|
|
2018-12-29 16:02:40 +01:00
|
|
|
fmt.Println("method:", r.Method)
|
2019-01-02 01:13:39 +01:00
|
|
|
t, _ := template.ParseFiles("panel.gtpl")
|
|
|
|
d := struct {
|
2019-01-04 17:58:41 +01:00
|
|
|
UserView string
|
2019-01-02 01:13:39 +01:00
|
|
|
}{
|
2019-01-04 17:58:41 +01:00
|
|
|
UserView: User}
|
2019-01-02 01:13:39 +01:00
|
|
|
t.ExecuteTemplate(w, "panel.gtpl", d)
|
2018-12-29 16:02:40 +01:00
|
|
|
}
|
|
|
|
|
2019-01-02 16:32:13 +01:00
|
|
|
//#############################################################################
|
|
|
|
func wylogowano(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
|
|
//--------------------------------------------------
|
|
|
|
t, _ := template.ParseFiles("wylogowano.gtpl")
|
|
|
|
d := struct {
|
|
|
|
loginFROMsiteView string
|
|
|
|
passwordFROMsiteView string
|
|
|
|
IDusersView int
|
|
|
|
UserView string
|
|
|
|
PasswordView string
|
|
|
|
PINView int
|
|
|
|
RFIDView int
|
|
|
|
LoginView string
|
|
|
|
BlokadaView bool
|
|
|
|
KosztView int
|
|
|
|
IDbiletuView int
|
|
|
|
KtoZabralView string
|
|
|
|
DataCzasView string
|
|
|
|
KosztBiletuView int
|
|
|
|
IDdaniaView int
|
|
|
|
NazwaDaniaView string
|
|
|
|
KosztDaniaView int
|
|
|
|
}{
|
|
|
|
loginFROMsiteView: "",
|
|
|
|
passwordFROMsiteView: "",
|
|
|
|
IDusersView: 0,
|
|
|
|
UserView: "",
|
|
|
|
PasswordView: "",
|
|
|
|
PINView: 0,
|
|
|
|
RFIDView: 0,
|
|
|
|
LoginView: "",
|
|
|
|
BlokadaView: Blokada,
|
|
|
|
KosztView: 0,
|
|
|
|
IDbiletuView: 0,
|
|
|
|
KtoZabralView: "",
|
|
|
|
DataCzasView: "",
|
|
|
|
KosztBiletuView: 0,
|
|
|
|
IDdaniaView: 0,
|
|
|
|
NazwaDaniaView: "",
|
|
|
|
KosztDaniaView: 0}
|
|
|
|
|
|
|
|
t.ExecuteTemplate(w, "wylogowano.gtpl", d)
|
|
|
|
}
|
|
|
|
|
2019-01-02 01:13:39 +01:00
|
|
|
//#############################################################################
|
|
|
|
func login(w http.ResponseWriter, r *http.Request) {
|
2019-01-03 23:57:38 +01:00
|
|
|
//**************************************************************************
|
2019-01-02 01:13:39 +01:00
|
|
|
loginFROMsite := r.FormValue("loginFROMsite")
|
|
|
|
passwordFROMsite := r.FormValue("passwordFROMsite")
|
|
|
|
|
2018-12-29 00:08:27 +01:00
|
|
|
db, err := sql.Open("sqlite3", "stolowkaZPM.db")
|
|
|
|
checkErr(err)
|
2019-01-02 01:13:39 +01:00
|
|
|
rows0, err := db.Query("SELECT * FROM users")
|
2018-12-29 00:08:27 +01:00
|
|
|
checkErr(err)
|
2018-12-29 16:02:40 +01:00
|
|
|
|
2019-01-02 01:13:39 +01:00
|
|
|
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")
|
2019-01-04 17:58:41 +01:00
|
|
|
if r.Method == "POST" {
|
|
|
|
if Login == loginFROMsite {
|
|
|
|
if Password == passwordFROMsite {
|
|
|
|
http.Redirect(w, r, "http://localhost:9197/panel", http.StatusSeeOther)
|
|
|
|
panel(w, r)
|
|
|
|
break
|
|
|
|
}
|
2018-12-29 16:02:40 +01:00
|
|
|
}
|
|
|
|
}
|
2018-12-29 00:08:27 +01:00
|
|
|
}
|
2018-12-10 16:09:22 +01:00
|
|
|
|
2018-12-10 18:00:33 +01:00
|
|
|
if r.Method == "GET" {
|
2018-12-28 14:22:11 +01:00
|
|
|
t, _ := template.ParseFiles("login.gtpl")
|
2019-01-04 17:58:41 +01:00
|
|
|
t.Execute(w, nil)
|
2018-12-10 18:00:33 +01:00
|
|
|
r.ParseForm()
|
2018-12-27 21:58:43 +01:00
|
|
|
}
|
2018-12-29 04:11:48 +01:00
|
|
|
|
2019-01-02 01:13:39 +01:00
|
|
|
if r.Method == "POST" {
|
|
|
|
if loginFROMsite != Login {
|
|
|
|
if loginFROMsite == "" {
|
|
|
|
if passwordFROMsite != Password {
|
|
|
|
t, _ := template.ParseFiles("login.gtpl")
|
2019-01-04 17:58:41 +01:00
|
|
|
t.Execute(w, nil)
|
2019-01-02 01:13:39 +01:00
|
|
|
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")
|
2019-01-04 17:58:41 +01:00
|
|
|
t.Execute(w, nil)
|
2019-01-02 01:13:39 +01:00
|
|
|
fmt.Fprint(w, "*** UWAGA! *** Błąd logowania! Login lub hasło nieprawidłowe. *** Spróbuj ponownie. ***")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
2019-01-03 23:57:38 +01:00
|
|
|
//**************************************************************************
|
2019-01-02 01:13:39 +01:00
|
|
|
rows0.Close()
|
|
|
|
db.Close()
|
2019-01-03 23:57:38 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
//#############################################################################
|
|
|
|
func menuDan(w http.ResponseWriter, r *http.Request) {
|
|
|
|
t, _ := template.ParseFiles("menuDanNaglowek.gtpl")
|
|
|
|
d := struct {
|
2019-01-04 17:58:41 +01:00
|
|
|
UserView string
|
2019-01-03 23:57:38 +01:00
|
|
|
}{
|
2019-01-04 17:58:41 +01:00
|
|
|
UserView: User}
|
2019-01-03 23:57:38 +01:00
|
|
|
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()
|
2019-01-02 01:13:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
//#############################################################################
|
|
|
|
func historiaPosilkow(w http.ResponseWriter, r *http.Request) {
|
|
|
|
t, _ := template.ParseFiles("historiaPosilkowNaglowek.gtpl")
|
|
|
|
d := struct {
|
2019-01-04 17:58:41 +01:00
|
|
|
UserView string
|
2019-01-02 01:13:39 +01:00
|
|
|
}{
|
2019-01-04 17:58:41 +01:00
|
|
|
UserView: User}
|
2019-01-02 01:13:39 +01:00
|
|
|
t.ExecuteTemplate(w, "historiaPosilkowNaglowek.gtpl", d)
|
|
|
|
|
|
|
|
//bilety ----------------------------------
|
2018-12-29 04:11:48 +01:00
|
|
|
db, err := sql.Open("sqlite3", "stolowkaZPM.db")
|
|
|
|
checkErr(err)
|
2019-01-02 01:13:39 +01:00
|
|
|
rows3, err := db.Query("SELECT * FROM bilety")
|
2018-12-29 04:11:48 +01:00
|
|
|
checkErr(err)
|
2019-01-02 01:13:39 +01:00
|
|
|
for rows3.Next() {
|
2019-01-02 16:32:13 +01:00
|
|
|
err = rows3.Scan(&IDbiletu, &KtoZabral, &DataCzas, &KosztBiletu, &CzyZaplacony)
|
2018-12-29 04:11:48 +01:00
|
|
|
checkErr(err)
|
2019-01-02 01:13:39 +01:00
|
|
|
if KtoZabral == User {
|
|
|
|
t, _ := template.ParseFiles("historiaPosilkow.gtpl")
|
|
|
|
d := struct {
|
2019-01-02 16:32:13 +01:00
|
|
|
IDbiletuView int
|
|
|
|
KtoZabralView string
|
|
|
|
DataCzasView string
|
|
|
|
KosztBiletuView int
|
|
|
|
CzyZaplaconyView bool
|
2019-01-02 01:13:39 +01:00
|
|
|
}{
|
2019-01-02 16:32:13 +01:00
|
|
|
IDbiletuView: IDbiletu,
|
|
|
|
KtoZabralView: KtoZabral,
|
|
|
|
DataCzasView: DataCzas,
|
|
|
|
KosztBiletuView: KosztBiletu,
|
|
|
|
CzyZaplaconyView: CzyZaplacony}
|
2019-01-02 01:13:39 +01:00
|
|
|
t.ExecuteTemplate(w, "historiaPosilkow.gtpl", d)
|
2018-12-29 04:11:48 +01:00
|
|
|
}
|
2019-01-02 01:13:39 +01:00
|
|
|
//----------------------------------
|
2018-12-29 04:11:48 +01:00
|
|
|
}
|
2019-01-02 01:13:39 +01:00
|
|
|
rows3.Close()
|
|
|
|
db.Close()
|
|
|
|
}
|
|
|
|
|
|
|
|
//#############################################################################
|
|
|
|
func platnosci(w http.ResponseWriter, r *http.Request) {
|
2019-01-02 16:32:13 +01:00
|
|
|
//fmt.Fprint(w, User)
|
2019-01-02 01:13:39 +01:00
|
|
|
|
|
|
|
//bilety ----------------------------------
|
|
|
|
db, err := sql.Open("sqlite3", "stolowkaZPM.db")
|
|
|
|
checkErr(err)
|
2019-01-04 17:58:41 +01:00
|
|
|
rows5, err := db.Query("SELECT * FROM bilety WHERE KtoZabral=?", User)
|
|
|
|
checkErr(err)
|
|
|
|
KosztBiletuSUMA = 0
|
2019-01-02 16:32:13 +01:00
|
|
|
for rows5.Next() {
|
2019-01-04 17:58:41 +01:00
|
|
|
err = rows5.Scan(&IDbiletu, &KtoZabral, &DataCzas, &KosztBiletu, &CzyZaplacony)
|
|
|
|
checkErr3(err)
|
|
|
|
//if KtoZabral == User {
|
|
|
|
KosztBiletuSUMA = KosztBiletu + KosztBiletuSUMA
|
|
|
|
//}
|
|
|
|
//----------------------------------
|
|
|
|
}
|
|
|
|
fmt.Println(KosztBiletuSUMA)
|
|
|
|
t, _ := template.ParseFiles("platnosci.gtpl")
|
|
|
|
checkErr(err)
|
|
|
|
type zaplac struct {
|
|
|
|
UserView string
|
|
|
|
Zaplac int
|
2018-12-17 22:35:22 +01:00
|
|
|
}
|
2019-01-04 17:58:41 +01:00
|
|
|
z := zaplac{
|
|
|
|
UserView: User,
|
|
|
|
Zaplac: KosztBiletuSUMA}
|
|
|
|
|
|
|
|
t.ExecuteTemplate(w, "platnosci.gtpl", z)
|
2019-01-02 16:32:13 +01:00
|
|
|
rows5.Close()
|
2018-12-29 04:11:48 +01:00
|
|
|
db.Close()
|
2018-12-17 22:35:22 +01:00
|
|
|
}
|
|
|
|
|
2018-12-29 00:08:27 +01:00
|
|
|
//***************************************************************************
|
2019-01-02 16:32:13 +01:00
|
|
|
//Obsługa błędów
|
2018-12-29 00:08:27 +01:00
|
|
|
//***************************************************************************
|
|
|
|
|
|
|
|
func checkErr(err error) {
|
|
|
|
if err != nil {
|
|
|
|
fmt.Println("Błąd")
|
|
|
|
}
|
2018-12-28 22:10:55 +01:00
|
|
|
}
|
2019-01-02 16:32:13 +01:00
|
|
|
func checkErr2(err error) {
|
|
|
|
if err != nil {
|
|
|
|
fmt.Println("Błąd dwa")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
func checkErr3(err error) {
|
|
|
|
if err != nil {
|
|
|
|
fmt.Println("Błąd trzy")
|
|
|
|
}
|
|
|
|
}
|
2018-12-28 22:10:55 +01:00
|
|
|
|
2018-12-29 00:08:27 +01:00
|
|
|
//***************************************************************************
|
|
|
|
//funkcja główna
|
|
|
|
//***************************************************************************
|
2018-11-21 23:47:31 +01:00
|
|
|
func main() {
|
2018-12-27 21:58:43 +01:00
|
|
|
http.HandleFunc("/", opisStołówkaZPM)
|
2018-12-10 18:00:33 +01:00
|
|
|
http.HandleFunc("/login", login)
|
2018-12-17 22:35:22 +01:00
|
|
|
http.HandleFunc("/panel", panel)
|
2019-01-02 01:13:39 +01:00
|
|
|
http.HandleFunc("/historiaPosilkow", historiaPosilkow)
|
|
|
|
http.HandleFunc("/platnosci", platnosci)
|
2019-01-02 16:32:13 +01:00
|
|
|
http.HandleFunc("/wylogowano", wylogowano)
|
2019-01-03 23:57:38 +01:00
|
|
|
http.HandleFunc("/menuDan", menuDan)
|
2018-12-29 16:02:40 +01:00
|
|
|
|
2019-01-04 17:58:41 +01:00
|
|
|
err := http.ListenAndServe(":9197", nil)
|
2018-12-10 15:52:29 +01:00
|
|
|
if err != nil {
|
|
|
|
log.Fatal("ListenAndServe: ", err)
|
|
|
|
}
|
2018-11-21 23:47:31 +01:00
|
|
|
}
|