package main import ( "net/http" "html/template" "fmt" "database/sql" _ "github.com/go-sql-driver/mysql" "time" "strconv" "strings" "regexp" ) type komunikat struct{ Opis string } type Plan struct{ Serie int Powtorzenia int Nazwa string Ciezar int Opis string data_t string Id_cwiczenie int } type Plan_rodzaj struct{ Plan []Plan Rodzaj_treningu string } type Cwiczenie struct{ Opis string Rodzaj string Nazwa string Film string } type CwiczenieTabela struct{ Id_cwiczenie int Nazwa string } type Wyniki struct{ Ciezar_rzecz int Ciezar_cel int Nazwa string Data_t string } type ww struct{ Wyniki []Wyniki Nazwa string NumerCwiczenia int Ilosc_cwiczen int } type Zmiany struct{ Co_ile_ciezar int Ciezar_dodaj int Co_ile_powtorzenie int Powtorzenie_dodaj int Nazwa string Rodzaj string } type Uzytkownicy struct { Url string Login string Haslo string } type Wymiary struct{ Nazwa string Wymiary_2 []Wymiary_2 } type Wymiary_2 struct{ Wymiar int Data string } type Ustawienia struct{ Poziom string Rodzaj_treningu string Zmiany []Zmiany } type Cookie struct { Name string Value int Path string Domain string Expires time.Time RawExpires string MaxAge int Secure bool HttpOnly bool Raw string Unparsed []string } //deklaracja tmpl-POCZATEK var tmpl2 = template.Must(template.ParseGlob("planowanieTreningu.html")) var tmpl3 = template.Must(template.ParseGlob("cwiczenie.html")) var tmpl4 = template.Must(template.ParseGlob("wyniki.html")) var tmpl5 = template.Must(template.ParseGlob("wymiary.html")) var tmpl6 = template.Must(template.ParseGlob("dodajcwiczenie.html")) var tmpl7 = template.Must(template.ParseGlob("wyniki-usun.html")) var tmpl8 = template.Must(template.ParseGlob("planowanieTreningu2.html")) var tmpl9 = template.Must(template.ParseGlob("planowanieTreningu3.html")) var tmpl10 = template.Must(template.ParseGlob("planowanieTreningu5.html")) var tmpl11 = template.Must(template.ParseGlob("wymiary2.html")) var tmpl = template.Must(template.ParseGlob("Twoj-trening.html")) //deklaracja tmpl-KONIEC //deklaracja funkcji-POCZATEK func baza(){ db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil { panic(err.Error()) } defer db.Close() } func getCookie(w http.ResponseWriter, r *http.Request) string { var decyzja string c1, err := r.Cookie("logowanie") if err != nil { decyzja="brak" }else{ decyzja=c1.Value } return decyzja } func setCookie(w http.ResponseWriter, r *http.Request, id_uzytkownik string) { expiration := time.Now().Add(2 * time.Hour) c1 := http.Cookie{Name: "logowanie", Value: id_uzytkownik, Expires: expiration} http.SetCookie(w, &c1) } //deklaracja funkcji-KONIEC func IsNumeric(s string) bool { _, err := strconv.ParseFloat(s, 64) return err == nil } func blank(s string) bool { blank := strings.TrimSpace(s) == "" var a bool if blank { a=true } else { a=false } return a } func zmianaUstawien(w http.ResponseWriter, r *http.Request) { if getCookie(w,r)=="brak" { p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("brakdostepu.html") t.Execute(w, p) }else{ p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("planowanieTreningu4.html") t.Execute(w, p) } } func planowanieTreningu(w http.ResponseWriter, r *http.Request) { if getCookie(w,r)=="brak" { p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("brakdostepu.html") t.Execute(w, p) }else{ p := Plan{Opis: ""} var IsNumber = regexp.MustCompile(`^[0-9]+$`).MatchString db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil {panic(err.Error())} defer db.Close() rows1, err:= db.Query("SELECT COUNT(*) FROM baza.ustawienia WHERE id_uzytkownik=?", getCookie(w,r)) var sprawdzanie_ustawienia int if err != nil {panic(err.Error())} for rows1.Next() { err = rows1.Scan(&sprawdzanie_ustawienia)} if sprawdzanie_ustawienia!=0 || (sprawdzanie_ustawienia==0 && r.Method == "POST" && r.FormValue("poziom")!="") || (sprawdzanie_ustawienia!=0 && r.Method == "POST" && r.FormValue("poziom")!=""){ if sprawdzanie_ustawienia==0{ rodzaj_treningu := r.FormValue("rodzaj_treningu") poziom := r.FormValue("poziom") rows2, err := db.Query("INSERT INTO ustawienia (id_uzytkownik, poziom, rodzaj_treningu) VALUES (?,?,?)", getCookie(w,r), poziom,rodzaj_treningu) if err != nil {panic(err.Error())} defer rows2.Close() }else if sprawdzanie_ustawienia!=0 && r.FormValue("poziom")!=""{ rodzaj_treningu := r.FormValue("rodzaj_treningu") poziom := r.FormValue("poziom") rows2, err := db.Query("UPDATE ustawienia set poziom=?, rodzaj_treningu=? where id_uzytkownik=?", poziom,rodzaj_treningu, getCookie(w,r)) if err != nil {panic(err.Error())} defer rows2.Close() } if r.Method == "POST" { //dodawanie rodzaju treningu oraz co ile powiekszać cieżar-POCZATEK co_ile_ciezar := r.FormValue("co_ile_ciezar") ciezar_dodaj := r.FormValue("ciezar_dodaj") co_ile_powtorzenie := r.FormValue("co_ile_powtorzenie") powtorzenie_dodaj := r.FormValue("powtorzenie_dodaj") // partia := r.FormValue("partia") cwiczenie_nazwa := r.FormValue("cwiczenie_nazwa") poziom := r.FormValue("poziom") Akcja := r.FormValue("Akcja") if Akcja=="Zatwierdzam" { if IsNumber(co_ile_ciezar) && co_ile_ciezar!="0" && IsNumber(ciezar_dodaj) && IsNumber(powtorzenie_dodaj) && IsNumber(co_ile_powtorzenie) && co_ile_powtorzenie!="0" && len(co_ile_ciezar)<3 && len(ciezar_dodaj)<3 && len(powtorzenie_dodaj)<3 && len(co_ile_powtorzenie)<3 { rows3, err := db.Query("SELECT poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r)) for rows3.Next() { err = rows3.Scan(&poziom) if err != nil {panic(err.Error()) }} var id_cwiczenie int if poziom=="zaawansowany"{ rows22, err := db.Query("SELECT id_cwiczenie from baza.cwiczenie where nazwa=?",cwiczenie_nazwa) for rows22.Next() { err = rows22.Scan(&id_cwiczenie) if err != nil {panic(err.Error()) }} rows3, err := db.Query("UPDATE baza.zmiany SET ciezar_dodaj=?, powtorzenie_dodaj=?, co_ile_ciezar=?, co_ile_powtorzenie=? where id_cwiczenia=? and id_uzytkownik=?", ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie, id_cwiczenie, getCookie(w,r)) if err != nil {panic(err.Error())} defer rows3.Close() }else if poziom=="początkujący"{ rows222, err := db.Query("SELECT id_cwiczenie from baza.cwiczenie where rodzaj=?",cwiczenie_nazwa) for rows222.Next() { err = rows222.Scan(&id_cwiczenie) if err != nil {panic(err.Error()) } rows3, err := db.Query("UPDATE baza.zmiany SET ciezar_dodaj=?, powtorzenie_dodaj=?, co_ile_ciezar=?, co_ile_powtorzenie=? where id_uzytkownik=? and id_cwiczenia=? ", ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie, getCookie(w,r), id_cwiczenie) if err != nil {panic(err.Error())} defer rows3.Close() }} }else{ p = Plan{Opis: "Musisz podać tylko liczby mniejsze od 99."} } } Powtorzenia := r.FormValue("Powtorzenia") Ciezar := r.FormValue("Ciezar") Serie := r.FormValue("Serie") Nazwa := r.FormValue("Nazwa") if Nazwa!="" && len(Ciezar)<4 && IsNumber(Ciezar){ rows1, err:= db.Query("SELECT COUNT(*) FROM baza.trening_cel as a, baza.cwiczenie as b WHERE a.id_cwiczenie=b.id_cwiczenie and b.nazwa=? and a.id_uzytkownik=?", Nazwa, getCookie(w,r)) var liczba int if err != nil {panic(err.Error())} for rows1.Next() { err = rows1.Scan(&liczba)} if liczba==0{ rows, err := db.Query("SELECT id_cwiczenie FROM baza.cwiczenie WHERE nazwa=? and (uzytkownik=? or uzytkownik=1)", Nazwa, getCookie(w,r)) if err != nil {panic(err.Error())} for rows.Next() { var id_cwiczenie int err = rows.Scan(&id_cwiczenie) rows, err := db.Query("INSERT INTO trening_cel (id_cwiczenie, id_uzytkownik, powtorzenia, ciezar,serie) VALUES (?, ?, ?, ?, ? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie) if err != nil {panic(err.Error())} defer rows.Close() //dodanie do tabeli zmiany p = Plan{Opis: "Dodano ćwiczenie do planu treningowego"} rows3, err := db.Query("SELECT poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r)) for rows3.Next() { err = rows3.Scan(&poziom) if err != nil {panic(err.Error()) } if poziom=="początkujący"{ rows, err := db.Query("select rodzaj FROM baza.cwiczenie WHERE id_cwiczenie=?", id_cwiczenie) if err != nil {panic(err.Error())} for rows.Next() { var rodzaj string err = rows.Scan(&rodzaj) rows, err := db.Query("select count(*) FROM baza.zmiany as A, baza.cwiczenie as B WHERE B.rodzaj=? and A.id_cwiczenia=B.id_cwiczenie and id_uzytkownik=?", rodzaj, getCookie(w,r)) if err != nil {panic(err.Error())} for rows.Next() { var liczba int err = rows.Scan(&liczba) if liczba!=0 { rows, err := db.Query("select A.ciezar_dodaj, A.powtorzenie_dodaj, A.co_ile_ciezar, A.co_ile_powtorzenie FROM baza.zmiany as A, baza.cwiczenie as B WHERE B.rodzaj=? and A.id_uzytkownik=? and A.id_cwiczenia=B.id_cwiczenie", rodzaj, getCookie(w,r)) if err != nil {panic(err.Error())} for rows.Next() { var ciezar_dodaj int var powtorzenie_dodaj int var co_ile_ciezar int var co_ile_powtorzenie int err = rows.Scan(&ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie) rows2, err := db.Query("INSERT INTO zmiany (ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie,id_cwiczenia, id_uzytkownik) VALUES (?, ?, ?, ?, ?,? )", ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie, id_cwiczenie,getCookie(w,r),) if err != nil {panic(err.Error())} defer rows2.Close() } }else{ rows2, err := db.Query("INSERT INTO zmiany (ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie,id_cwiczenia, id_uzytkownik) VALUES (0, 0, 0, 0, ?,? )", id_cwiczenie,getCookie(w,r)) if err != nil {panic(err.Error())} defer rows2.Close()} } }}else{ rows2, err := db.Query("INSERT INTO zmiany (ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie,id_cwiczenia, id_uzytkownik) VALUES (0, 0, 0, 0, ?,? )", id_cwiczenie,getCookie(w,r)) if err != nil {panic(err.Error())} defer rows2.Close() }} // rows2, err := db.Query("INSERT INTO zmiany (ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie,id_cwiczenia, id_uzytkownik) VALUES (0, 0, 0, 0, ?,? )", id_cwiczenie,getCookie(w,r)) // if err != nil {panic(err.Error())} // defer rows2.Close() }}else { p = Plan{Opis: "To ćwiczenie juz dodano"} } }else if IsNumber(Ciezar)!=true && Nazwa!="" || len(Ciezar)>3{ p = Plan{Opis: "Musisz podać tylko liczby mniejsze od 999."} } } rows, err := db.Query("select rodzaj_treningu from baza.ustawienia where id_uzytkownik=?", getCookie(w,r)) for rows.Next() { var rodzaj_treningu string err = rows.Scan(&rodzaj_treningu) if err != nil { panic(err.Error()) } if rodzaj_treningu=="FWB" { rows2, err := db.Query("select nazwa from baza.cwiczenie where (uzytkownik=? or uzytkownik=1)",getCookie(w,r)) emp2 := Plan{} res2 := []Plan{} for rows2.Next() { var nazwa string err = rows2.Scan(&nazwa) if err != nil {panic(err.Error()) } emp2.Nazwa = nazwa res2 = append(res2, emp2) } tmpl2.ExecuteTemplate(w, "Index", res2) }else if rodzaj_treningu=="ABS" { rows2, err := db.Query("select nazwa from baza.cwiczenie where rodzaj='brzuch' and (uzytkownik=? or uzytkownik=1)",getCookie(w,r)) emp2 := Plan{} res2 := []Plan{} for rows2.Next() { var nazwa string err = rows2.Scan(&nazwa) if err != nil { panic(err.Error()) } emp2.Nazwa = nazwa res2 = append(res2, emp2) } tmpl2.ExecuteTemplate(w, "Index", res2) // t, _ := template.ParseFiles("komunikat.html") // t.Execute(w, p) }else{ rows2, err := db.Query("select nazwa from baza.cwiczenie where (uzytkownik=? or uzytkownik=1)",getCookie(w,r)) emp2 := Plan{} res2 := []Plan{} for rows2.Next() { var nazwa string err = rows2.Scan(&nazwa) if err != nil {panic(err.Error()) } emp2.Nazwa = nazwa res2 = append(res2, emp2) } tmpl2.ExecuteTemplate(w, "Index", res2) // t, _ := template.ParseFiles("komunikat.html") // t.Execute(w, p) }} rows4, err := db.Query("select poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r)) for rows4.Next() { var poziom string err = rows4.Scan(&poziom) if err != nil { panic(err.Error()) } if poziom=="zaawansowany" { rows4, err := db.Query("select poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r)) emp4:= Ustawienia{} res4 := []Ustawienia{} for rows4.Next() { var poziom string err = rows4.Scan(&poziom) if err != nil { panic(err.Error()) } emp4.Poziom = poziom rows33, err := db.Query(" SELECT A.ciezar_dodaj,A.powtorzenie_dodaj, A.co_ile_ciezar, A.co_ile_powtorzenie,B.nazwa, B.rodzaj from baza.zmiany as A, baza.cwiczenie as B where A.id_uzytkownik=? and A.id_cwiczenia=B.id_cwiczenie ",getCookie(w,r)) emp33 := Zmiany{} res33 := []Zmiany{} for rows33.Next() { var ciezar_dodaj int var powtorzenie_dodaj int var co_ile_ciezar int var co_ile_powtorzenie int var Nazwa string var Rodzaj string err = rows33.Scan(&ciezar_dodaj,&powtorzenie_dodaj,&co_ile_ciezar,&co_ile_powtorzenie,&Nazwa,&Rodzaj) if err != nil {panic(err.Error()) } emp33.Ciezar_dodaj = ciezar_dodaj emp33.Powtorzenie_dodaj = powtorzenie_dodaj emp33.Co_ile_ciezar = co_ile_ciezar emp33.Co_ile_powtorzenie = co_ile_powtorzenie emp33.Nazwa = Nazwa emp33.Rodzaj = Rodzaj res33 = append(res33, emp33) } emp4.Zmiany=res33 res4 = append(res4, emp4) } tmpl9.ExecuteTemplate(w, "Index3", res4) }else{ rows4, err := db.Query("select poziom from baza.ustawienia where id_uzytkownik=?", getCookie(w,r)) emp4:= Ustawienia{} res4 := []Ustawienia{} for rows4.Next() { var poziom string err = rows4.Scan(&poziom) if err != nil { panic(err.Error()) } emp4.Poziom = poziom rows33, err := db.Query(" sELECT A.ciezar_dodaj,A.powtorzenie_dodaj, A.co_ile_ciezar, A.co_ile_powtorzenie, B.rodzaj from baza.zmiany as A, baza.cwiczenie as B where A.id_uzytkownik=? and A.id_cwiczenia=B.id_cwiczenie group by A.ciezar_dodaj,A.powtorzenie_dodaj, A.co_ile_ciezar, A.co_ile_powtorzenie, B.rodzaj",getCookie(w,r)) emp33 := Zmiany{} res33 := []Zmiany{} for rows33.Next() { var ciezar_dodaj int var powtorzenie_dodaj int var co_ile_ciezar int var co_ile_powtorzenie int var Rodzaj string err = rows33.Scan(&ciezar_dodaj,&powtorzenie_dodaj,&co_ile_ciezar,&co_ile_powtorzenie,&Rodzaj) if err != nil {panic(err.Error()) } emp33.Ciezar_dodaj = ciezar_dodaj emp33.Powtorzenie_dodaj = powtorzenie_dodaj emp33.Co_ile_ciezar = co_ile_ciezar emp33.Co_ile_powtorzenie = co_ile_powtorzenie emp33.Rodzaj = Rodzaj res33 = append(res33, emp33) } emp4.Zmiany=res33 res4 = append(res4, emp4) } tmpl9.ExecuteTemplate(w, "Index3", res4) }} rows5, err := db.Query(" SELECT poziom, rodzaj_treningu from baza.ustawienia where id_uzytkownik=?",getCookie(w,r)) emp5 := Ustawienia{} res5 := []Ustawienia{} for rows5.Next() { var Poziom string var Rodzaj_treningu string err = rows5.Scan(&Poziom, &Rodzaj_treningu) if err != nil {panic(err.Error()) } emp5.Poziom = Poziom emp5.Rodzaj_treningu = Rodzaj_treningu res5 = append(res5, emp5) } tmpl10.ExecuteTemplate(w, "Index5", res5) if emp5.Poziom=="początkujący" { rows21, err := db.Query(" SELECT B.rodzaj from baza.trening_cel as A, baza.cwiczenie as B where A.id_uzytkownik=? and A.id_cwiczenie=B.id_cwiczenie group by B.rodzaj",getCookie(w,r)) emp21 := Cwiczenie{} res21 := []Cwiczenie{} for rows21.Next() { var Rodzaj string err = rows21.Scan(&Rodzaj) if err != nil {panic(err.Error()) } emp21.Nazwa = Rodzaj res21 = append(res21, emp21) } tmpl8.ExecuteTemplate(w, "Index2", res21) }else{ rows21, err := db.Query(" SELECT B.nazwa from baza.trening_cel as A, baza.cwiczenie as B where A.id_uzytkownik=? and A.id_cwiczenie=B.id_cwiczenie ",getCookie(w,r)) emp21 := Cwiczenie{} res21 := []Cwiczenie{} for rows21.Next() { var Nazwa string err = rows21.Scan(&Nazwa) if err != nil {panic(err.Error()) } emp21.Nazwa = Nazwa res21 = append(res21, emp21) } tmpl8.ExecuteTemplate(w, "Index2", res21) } }else{ p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("planowanieTreningu4.html") t.Execute(w, p) } t, _ := template.ParseFiles("komunikat.html") t.Execute(w, p)}} func treningHandler(w http.ResponseWriter, r *http.Request) { //otwieranie bazy-POCZATEK db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil {panic(err.Error())} defer db.Close() //otwieranie bazy-KONIEC //autoryzacja-POCZATEK if getCookie(w,r)=="brak" { p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("brakdostepu.html") t.Execute(w, p) }else{ p := Plan{Opis: ""} var IsNumber = regexp.MustCompile(`^[0-9]+$`).MatchString rows, err := db.Query("select count(*) from baza.zmiany where id_uzytkownik=? and ciezar_dodaj=0 and powtorzenie_dodaj=0 and co_ile_ciezar=0 and co_ile_powtorzenie=0", getCookie(w,r)) if err != nil {panic(err.Error())} defer rows.Close() var sprawdzenie_zmiany int for rows.Next() { rows.Scan(&sprawdzenie_zmiany)} if sprawdzenie_zmiany!=0 { q := Plan{Opis: "nie dodałeś wsztkich zmiennych do ćwiczeń wiec nie masz dostepu do tej zakładki"} t, _ := template.ParseFiles("brakdostepu2.html") t.Execute(w, q) }else{ //sprawdzanie metody POST - POCZATEK if r.Method == "POST" { Powtorzenia := r.FormValue("Powtorzenia") Ciezar := r.FormValue("Ciezar") Serie := r.FormValue("Serie") Nazwa := r.FormValue("Nazwa") Akcja := r.FormValue("Akcja") currentTime := time.Now() data_t:= currentTime.Format("2006-01-02") rows1, err := db.Query("SELECT COUNT(*) FROM baza.trening_rzeczywisty as a, baza.cwiczenie as b WHERE a.id_cwiczenia=b.id_cwiczenie and b.nazwa=? and a.id_uzytkownik=? and a.data_t=?", Nazwa,getCookie(w,r), data_t) if err != nil {panic(err.Error())} defer rows1.Close() var liczba string for rows1.Next() { err = rows1.Scan(&liczba) } rows, err := db.Query("SELECT id_cwiczenie FROM baza.cwiczenie WHERE nazwa=? and (uzytkownik=? or uzytkownik=1)", Nazwa,getCookie(w,r)) if err != nil {panic(err.Error())} defer rows.Close() for rows.Next() { emp := CwiczenieTabela{} var id_cwiczenie int err = rows.Scan(&id_cwiczenie) emp.Id_cwiczenie = id_cwiczenie if Akcja=="usun"{ rows, err := db.Query("DELETE FROM baza.trening_cel where id_cwiczenie=? and id_uzytkownik=?", id_cwiczenie, getCookie(w,r)) if err != nil {panic(err.Error())} defer rows.Close() rows2, err := db.Query("DELETE FROM baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie, getCookie(w,r)) if err != nil {panic(err.Error())} defer rows2.Close() rows3, err := db.Query("DELETE FROM baza.zmiany where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie, getCookie(w,r)) if err != nil {panic(err.Error())} defer rows3.Close() }else if Akcja=="zatwierdz" && liczba=="0"{ if IsNumber(Ciezar) && IsNumber(Powtorzenia) && IsNumber(Serie) && len(Ciezar)<4 && len(Powtorzenia)<4 && len(Serie)<4 { rows34, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_uzytkownik=? and id_cwiczenia=?",getCookie(w,r),id_cwiczenie) if err != nil {panic(err.Error())} var sprawdzenie int err = rows34.Scan(&sprawdzenie) if sprawdzenie!=0{ rows3, err := db.Query("select powtorzenia_cel, ciezar_cel,MAX(data_t) from baza.trening_rzeczywisty where id_uzytkownik=? and id_cwiczenia=? group by powtorzenia_cel,ciezar_cel",getCookie(w,r),id_cwiczenie) if err != nil {panic(err.Error())} for rows3.Next() { var powtorzenia_cel int var ciezar_cel int var max string err = rows3.Scan(&powtorzenia_cel,&ciezar_cel, &max) if err != nil {panic(err.Error())} rows3, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie,getCookie(w,r)) if err != nil {panic(err.Error())} for rows3.Next() { var liczba_treningow int err = rows3.Scan(&liczba_treningow) if err != nil {panic(err.Error())} rows5, err := db.Query("SELECT id_cwiczenia, ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie FROM baza.zmiany where id_uzytkownik=? and id_cwiczenia=? ",getCookie(w,r), id_cwiczenie) if err != nil {panic(err.Error())} for rows5.Next() { var id_cwiczenia int var ciezar_dodaj int var powtorzenie_dodaj int var co_ile_ciezar int var co_ile_powtorzenie int err = rows5.Scan(&id_cwiczenia , &ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie) if err != nil {panic(err.Error())} if (liczba_treningow%co_ile_ciezar==0 || liczba_treningow%co_ile_powtorzenie==0) && liczba_treningow!=0{ ciezar_cel=ciezar_cel+ciezar_dodaj powtorzenia_cel=powtorzenia_cel+powtorzenie_dodaj rows, err := db.Query("INSERT INTO trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie, data_t,powtorzenia_cel,ciezar_cel) VALUES (?, ?, ?, ?, ?, ?,?,? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie, data_t,powtorzenia_cel,ciezar_cel) if err != nil {panic(err.Error())} defer rows.Close() p = Plan{Opis: "Dodano pomyślnie ćwiczenie do dzisiejszego treningu."} }else{ rows, err := db.Query("INSERT INTO trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie, data_t,powtorzenia_cel,ciezar_cel) VALUES (?, ?, ?, ?, ?, ?,?,? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie, data_t,powtorzenia_cel,ciezar_cel) if err != nil {panic(err.Error())} defer rows.Close() p = Plan{Opis: "Dodano pomyślnie ćwiczenie do dzisiejszego treningu."} } }}}}else{ rows3, err := db.Query("select powtorzenia, ciezar from baza.trening_cel where id_uzytkownik=? and id_cwiczenie=?",getCookie(w,r),id_cwiczenie) if err != nil {panic(err.Error())} for rows3.Next() { var powtorzenia_cel int var ciezar_cel int err = rows3.Scan(&powtorzenia_cel,&ciezar_cel) if err != nil {panic(err.Error())} rows3, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie,getCookie(w,r)) if err != nil {panic(err.Error())} for rows3.Next() { var liczba_treningow int err = rows3.Scan(&liczba_treningow) if err != nil {panic(err.Error())} rows5, err := db.Query("SELECT id_cwiczenia, ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie FROM baza.zmiany where id_uzytkownik=? and id_cwiczenia=? ",getCookie(w,r), id_cwiczenie) if err != nil {panic(err.Error())} for rows5.Next() { var id_cwiczenia int var ciezar_dodaj int var powtorzenie_dodaj int var co_ile_ciezar int var co_ile_powtorzenie int err = rows5.Scan(&id_cwiczenia , &ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie) if err != nil {panic(err.Error())} if (liczba_treningow%co_ile_ciezar==0 || liczba_treningow%co_ile_powtorzenie==0) && liczba_treningow!=0{ ciezar_cel=ciezar_cel+ciezar_dodaj powtorzenia_cel=powtorzenia_cel+powtorzenie_dodaj rows, err := db.Query("INSERT INTO baza.trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie, data_t,powtorzenia_cel,ciezar_cel) VALUES (?, ?, ?, ?, ?, ?,?,? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie, data_t,powtorzenia_cel,ciezar_cel) if err != nil {panic(err.Error())} defer rows.Close() p = Plan{Opis: "Dodano pomyślnie ćwiczenie do dzisiejszego treningu."} }else{ rows, err := db.Query("INSERT INTO baza.trening_rzeczywisty (id_cwiczenia, id_uzytkownik, powtorzenia, ciezar,serie, data_t,powtorzenia_cel,ciezar_cel) VALUES (?, ?, ?, ?, ?, ?,?,? )", id_cwiczenie,getCookie(w,r), Powtorzenia, Ciezar, Serie, data_t,powtorzenia_cel,ciezar_cel) if err != nil {panic(err.Error())} defer rows.Close() p = Plan{Opis: "Dodano pomyślnie ćwiczenie do dzisiejszego treningu."} }}}}} }else{ p = Plan{Opis: "Podane dane muszą być cyframi mniejszymi od 999"} }}else if Akcja=="zatwierdz" && liczba!="0"{ p = Plan{Opis: "Dodano juz"} } } } rows2, err := db.Query("SELECT rodzaj_treningu FROM ustawienia where id_uzytkownik=?", getCookie(w,r)) if err != nil {panic(err.Error())} emp2 := Plan_rodzaj{} res2 := []Plan_rodzaj{} for rows2.Next() { var rodzaj_treningu string err = rows2.Scan(&rodzaj_treningu) if err != nil {panic(err.Error())} emp2.Rodzaj_treningu = rodzaj_treningu rows, err := db.Query("SELECT N.serie, N.powtorzenia, P.nazwa, N.ciezar, N.id_cwiczenie FROM trening_cel AS N, cwiczenie AS P WHERE P.id_cwiczenie = N.id_cwiczenie and id_uzytkownik like ?", getCookie(w,r)) if err != nil {panic(err.Error())} emp := Plan{} res := []Plan{} for rows.Next() { var serie int var powtorzenia_cel int var nazwa string var ciezar_cel int var id_cwiczenie int err = rows.Scan(&serie, &powtorzenia_cel, &nazwa, &ciezar_cel, &id_cwiczenie) if err != nil {panic(err.Error())} rows34, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_uzytkownik=? and id_cwiczenia=?",getCookie(w,r),id_cwiczenie) if err != nil {panic(err.Error())} for rows34.Next() { var sprawdzenie int err = rows34.Scan(&sprawdzenie) if sprawdzenie!=0{ rows3, err := db.Query("select powtorzenia_cel, ciezar_cel,MAX(data_t) from baza.trening_rzeczywisty where id_uzytkownik=? and id_cwiczenia=? group by powtorzenia_cel,ciezar_cel",getCookie(w,r),id_cwiczenie) if err != nil {panic(err.Error())} for rows3.Next() { var powtorzenia_cel int var ciezar_cel int var max string err = rows3.Scan(&powtorzenia_cel,&ciezar_cel, &max) if err != nil {panic(err.Error())} rows3, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie,getCookie(w,r)) if err != nil {panic(err.Error())} for rows3.Next() { var liczba_treningow int err = rows3.Scan(&liczba_treningow) if err != nil {panic(err.Error())} rows5, err := db.Query("SELECT id_cwiczenia, ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie FROM baza.zmiany where id_uzytkownik=? and id_cwiczenia=? ",getCookie(w,r), id_cwiczenie) if err != nil {panic(err.Error())} for rows5.Next() { var id_cwiczenia int var ciezar_dodaj int var powtorzenie_dodaj int var co_ile_ciezar int var co_ile_powtorzenie int err = rows5.Scan(&id_cwiczenia , &ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie) if err != nil {panic(err.Error())} if (liczba_treningow%co_ile_ciezar==0 || liczba_treningow%co_ile_powtorzenie==0) && liczba_treningow!=0{ ciezar_cel=ciezar_cel+ciezar_dodaj powtorzenia_cel=powtorzenia_cel+powtorzenie_dodaj emp.Serie = serie emp.Powtorzenia = powtorzenia_cel emp.Nazwa = nazwa emp.Ciezar = ciezar_cel emp.Id_cwiczenie = id_cwiczenie }else{ emp.Serie = serie emp.Powtorzenia = powtorzenia_cel emp.Nazwa = nazwa emp.Ciezar = ciezar_cel emp.Id_cwiczenie = id_cwiczenie } } } } }else{ rows3, err := db.Query("select powtorzenia, ciezar from baza.trening_cel where id_uzytkownik=? and id_cwiczenie=?",getCookie(w,r),id_cwiczenie) if err != nil {panic(err.Error())} for rows3.Next() { var powtorzenia_cel int var ciezar_cel int err = rows3.Scan(&powtorzenia_cel,&ciezar_cel) if err != nil {panic(err.Error())} rows4, err := db.Query("SELECT COUNT(*) from baza.trening_rzeczywisty where id_cwiczenia=? and id_uzytkownik=?", id_cwiczenie,getCookie(w,r)) if err != nil {panic(err.Error())} for rows4.Next() { var liczba_treningow int err = rows4.Scan(&liczba_treningow) if err != nil {panic(err.Error())} rows5, err := db.Query("SELECT id_cwiczenia, ciezar_dodaj, powtorzenie_dodaj, co_ile_ciezar, co_ile_powtorzenie FROM baza.zmiany where id_uzytkownik=? and id_cwiczenia=? ",getCookie(w,r), id_cwiczenie) if err != nil {panic(err.Error())} for rows5.Next() { var id_cwiczenia int var ciezar_dodaj int var powtorzenie_dodaj int var co_ile_ciezar int var co_ile_powtorzenie int err = rows5.Scan(&id_cwiczenia , &ciezar_dodaj, &powtorzenie_dodaj, &co_ile_ciezar, &co_ile_powtorzenie) if err != nil {panic(err.Error())} if (liczba_treningow%co_ile_ciezar==0 || liczba_treningow%co_ile_powtorzenie==0) && liczba_treningow!=0{ ciezar_cel=ciezar_cel+ciezar_dodaj powtorzenia_cel=powtorzenia_cel+powtorzenie_dodaj emp.Serie = serie emp.Powtorzenia = powtorzenia_cel emp.Nazwa = nazwa emp.Ciezar = ciezar_cel emp.Id_cwiczenie = id_cwiczenie }else{ emp.Serie = serie emp.Powtorzenia = powtorzenia_cel emp.Nazwa = nazwa emp.Ciezar = ciezar_cel emp.Id_cwiczenie = id_cwiczenie } } } }}} res = append(res, emp) } emp2.Plan=res res2 = append(res2, emp2) } tmpl.ExecuteTemplate(w, "Index", res2) t, _ := template.ParseFiles("komunikat.html") t.Execute(w, p) } //autoryzacja-KONIEC } } func logowanieHandler(w http.ResponseWriter, r *http.Request) { db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil { panic(err.Error()) } defer db.Close() if r.Method == "GET" { id_uzytkownik := r.FormValue("cookies") setCookie(w, r, id_uzytkownik) p := Plan{Opis: ""} t, _ := template.ParseFiles("logowanie.html") t.Execute(w, p) } if r.Method == "POST" { Login := r.FormValue("Login") Haslo := r.FormValue("Haslo") rows, err := db.Query("SELECT COUNT(*) FROM baza.uzytkownicy WHERE login=? and haslo=?", Login, Haslo) if err != nil { panic(err.Error()) } for rows.Next() { var autoryzacja int err = rows.Scan(&autoryzacja) if err != nil { panic(err.Error()) } if autoryzacja!=0{ rows, err := db.Query("SELECT id_uzytkownik FROM baza.uzytkownicy WHERE login=? and haslo=?", Login, Haslo) if err != nil { panic(err.Error()) } for rows.Next() { var id_uzytkownik string err = rows.Scan(&id_uzytkownik) if err != nil { panic(err.Error()) } setCookie(w, r, id_uzytkownik) p := Plan{Opis: ""} t, _ := template.ParseFiles("start.html") t.Execute(w, p)} }else{ p := Plan{Opis: "Podano złe hasło lub login."} t, _ := template.ParseFiles("logowanie.html") t.Execute(w, p) }} } } func opisCwiczenia(w http.ResponseWriter, r *http.Request) { if getCookie(w,r)=="brak" { p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("brakdostepu.html") t.Execute(w, p) }else{ nazwa := r.FormValue("Nazwa") db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil {panic(err.Error())} defer db.Close() rows, err := db.Query("SELECT opis, rodzaj, Film FROM baza.cwiczenie where nazwa=? and (uzytkownik=1 or uzytkownik=?)", nazwa,getCookie(w,r)) if err != nil {panic(err.Error())} emp := Cwiczenie{} res := []Cwiczenie{} for rows.Next() { var opis string var rodzaj string var Film string err = rows.Scan(&opis, &rodzaj, &Film) if err != nil {panic(err.Error()) } emp.Opis = opis emp.Rodzaj = rodzaj if Film!=""{ emp.Film =Film } emp.Nazwa =nazwa res = append(res, emp) } tmpl3.ExecuteTemplate(w, "Index", res) //koniec wyświetlanie trenngu }} func wynikiHandler(w http.ResponseWriter, r *http.Request) { if getCookie(w,r)=="brak" { p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("brakdostepu.html") t.Execute(w, p) }else{ p := Plan{Opis: ""} db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil {panic(err.Error())} defer db.Close() var IsNumber = regexp.MustCompile(`^\d+.?\d{1}$`).MatchString if r.Method == "POST" { Nazwa2 := r.FormValue("Nazwa") data_t2 := r.FormValue("Data") Ciezar2 := r.FormValue("Ciezar") Akcja2:= r.FormValue("Akcja") rows2, err := db.Query("SELECT COUNT(*) FROM baza.trening_rzeczywisty AS A, baza.cwiczenie AS B where B.nazwa=? and A.id_uzytkownik=? and A.data_t=?", Nazwa2,getCookie(w,r), data_t2) if err != nil {panic(err.Error())} for rows2.Next() { var sprawdzanieBaza int err = rows2.Scan(&sprawdzanieBaza) if err != nil {panic(err.Error()) } if sprawdzanieBaza!=0 { if Akcja2=="Usun" { insert, err := db.Query("delete A from baza.trening_rzeczywisty AS A, baza.cwiczenie AS B where B.nazwa=? and A.id_uzytkownik=? and A.data_t=? and A.id_cwiczenia=B.id_cwiczenie;", Nazwa2,getCookie(w,r), data_t2) if err != nil {panic(err.Error())} defer insert.Close() }else if Ciezar2!="" && Akcja2=="Edytuj" && len(Ciezar2)<6 && IsNumber(Ciezar2) { rows3, err := db.Query("UPDATE baza.trening_rzeczywisty AS A, baza.cwiczenie AS B SET A.ciezar=? where B.nazwa=? and A.id_uzytkownik=? and A.data_t=? and A.id_cwiczenia=B.id_cwiczenie;", Ciezar2, Nazwa2, getCookie(w,r), data_t2) if err != nil {panic(err.Error())} defer rows3.Close() }else{ p = Plan{Opis: "Prosze podać cyfry do 999"} } }else{ p = Plan{Opis: "Wynik o takiej dacie oraz nazwie nie istanieje w bazie"} } } } rows, err := db.Query("SELECT C.nazwa FROM baza.trening_cel AS N, baza.cwiczenie AS C WHERE id_uzytkownik=? and C.id_cwiczenie = N.id_cwiczenie",getCookie(w,r)) if err != nil {panic(err.Error())} var i int i=0 emp := ww{} res := []ww{} for rows.Next() { var nazwa string err = rows.Scan(&nazwa) if err != nil {panic(err.Error())} emp.Nazwa=nazwa i++ emp.NumerCwiczenia=i rows2, err := db.Query("SELECT P.ciezar,P.ciezar_cel, P.data_t FROM baza.trening_rzeczywisty AS P, baza.cwiczenie AS C WHERE C.nazwa = ? and C.id_cwiczenie = P.id_cwiczenia and P.id_uzytkownik=?", nazwa,getCookie(w,r)) if err != nil {panic(err.Error())} emp2 := Wyniki{} res2 := []Wyniki{} for rows2.Next() { var ciezar_rzecz int var ciezar_cel int var data_t string err = rows2.Scan(&ciezar_rzecz, &ciezar_cel, &data_t) if err != nil { panic(err.Error()) } emp2.Ciezar_rzecz = ciezar_rzecz emp2.Ciezar_cel = ciezar_cel emp2.Data_t = data_t res2 = append(res2, emp2) } emp.Wyniki=res2 res = append(res, emp) } tmpl4.ExecuteTemplate(w, "Index", res) rows4, err := db.Query("SELECT B.nazwa FROM baza.trening_rzeczywisty as A, cwiczenie as B where B.id_cwiczenie=A.id_cwiczenia and A.id_uzytkownik=? GROUP BY A.id_cwiczenia", getCookie(w,r)) if err != nil {panic(err.Error())} emp2 := Wyniki{} res2 := []Wyniki{} for rows4.Next() { var nazwa string err = rows4.Scan(&nazwa) if err != nil {panic(err.Error())} emp2.Nazwa = nazwa res2 = append(res2, emp2) } tmpl7.ExecuteTemplate(w, "Index2", res2) t, _ := template.ParseFiles("komunikat.html") t.Execute(w, p) } } func dodaj_cwiczenieHandler(w http.ResponseWriter, r *http.Request) { db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil { panic(err.Error()) } defer db.Close() if getCookie(w,r)=="brak" { p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("brakdostepu.html") t.Execute(w, p) }else{ p := Plan{Opis: ""} if r.Method == "POST" { Nazwa := r.FormValue("Nazwa") Rodzaj := r.FormValue("Rodzaj") Opis := r.FormValue("Opis") Film := r.FormValue("Film") rows, err := db.Query("SELECT COUNT(*) FROM baza.cwiczenie WHERE nazwa=? and (uzytkownik=? or uzytkownik=1)", Nazwa,getCookie(w,r)) if err != nil {panic(err.Error())} var sprawdzanienazwa int for rows.Next() { err = rows.Scan(&sprawdzanienazwa) if sprawdzanienazwa==0{ if blank(Nazwa)==false && blank(Rodzaj)==false && blank(Opis)==false && len(Nazwa)<45 && len(Opis)<400 && len(Film)<150{ insert, err := db.Query("INSERT INTO baza.cwiczenie ( opis, rodzaj, nazwa, Film, uzytkownik) VALUES ( ?,?,?,?,? )",Opis, Rodzaj, Nazwa, Film,getCookie(w,r)) fmt.Println(insert) fmt.Println(err) }else{ p = Plan{Opis: "Musisz wypełnić wszystkie pola. Pole film jest opcjonalne. Maksymalna ilośc znaków to: nazwa ćwiczenia-45 znaków, opis-400 znaków i film-150 znaków"} } }else{ p = Plan{Opis: "Cwiczenie o tej nazwie juz istnieje."} } } } rows2, err := db.Query("select nazwa from baza.cwiczenie where uzytkownik=?",getCookie(w,r)) emp2 := Plan{} res2 := []Plan{} for rows2.Next() { var nazwa string err = rows2.Scan(&nazwa) if err != nil {panic(err.Error()) } emp2.Nazwa = nazwa res2 = append(res2, emp2) } tmpl6.ExecuteTemplate(w, "Index", res2) t, _ := template.ParseFiles("komunikat.html") t.Execute(w, p) }} func usun_cwiczenieHandler(w http.ResponseWriter, r *http.Request) { db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil { panic(err.Error()) } defer db.Close() if getCookie(w,r)=="brak" { p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("brakdostepu.html") t.Execute(w, p) }else{ if r.Method == "POST" { NazwaUsun := r.FormValue("NazwaUsun") insert, err := db.Query("delete A from baza.trening_rzeczywisty as A, baza.cwiczenie as B where B.id_cwiczenie=A.id_cwiczenia and B.nazwa=? and B.uzytkownik=?", NazwaUsun,getCookie(w,r)) if err != nil {panic(err.Error())} defer insert.Close() insert2, err := db.Query("delete A from baza.zmiany as A, baza.cwiczenie as B where B.id_cwiczenie=A.id_cwiczenia and B.nazwa=? and B.uzytkownik=?", NazwaUsun,getCookie(w,r)) if err != nil {panic(err.Error())} defer insert2.Close() insert3, err := db.Query("delete A from baza.trening_cel as A, baza.cwiczenie as B where B.id_cwiczenie=A.id_cwiczenie and B.nazwa=? and B.uzytkownik=?", NazwaUsun,getCookie(w,r)) if err != nil {panic(err.Error())} defer insert3.Close() insert4, err := db.Query("delete from baza.cwiczenie where nazwa=? and uzytkownik=?", NazwaUsun,getCookie(w,r)) if err != nil {panic(err.Error())} defer insert4.Close() } rows2, err := db.Query("select nazwa from baza.cwiczenie where uzytkownik=?",getCookie(w,r)) emp2 := Plan{} res2 := []Plan{} for rows2.Next() { var nazwa string err = rows2.Scan(&nazwa) if err != nil {panic(err.Error()) } emp2.Nazwa = nazwa res2 = append(res2, emp2) } tmpl6.ExecuteTemplate(w, "Index", res2) }} func rejestracja(w http.ResponseWriter, r *http.Request) { // p := Uzytkownicy{Url: "/start"} // t, _ := template.ParseFiles("pocz.html") // t.Execute(w, p) var IsLetter = regexp.MustCompile(`^[0-9a-zA-Z]+$`).MatchString if r.Method == "POST" { Login := r.FormValue("Login") Haslo := r.FormValue("Haslo") Haslo2 := r.FormValue("Haslo2") db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil {panic(err.Error())} defer db.Close() if Haslo2==Haslo { if len(Login)>0 && len(Haslo)>0 && len(Login)<10 && len(Haslo)<10 && IsLetter(Haslo) && IsLetter(Login) && len(Login)>6 && len(Haslo)>6 { rows, err := db.Query("SELECT COUNT(*) FROM baza.uzytkownicy WHERE login=?", Login) var login int for rows.Next() { err = rows.Scan(&login) if err != nil {panic(err.Error())} } if login==0{ insert, err := db.Query("INSERT INTO uzytkownicy (login, haslo) VALUES ( ?,? )",Login, Haslo) if err != nil { panic(err.Error()) } defer insert.Close() p := komunikat{Opis: ""} t, _ := template.ParseFiles("logowanie.html") t.Execute(w, p) }else{ p := komunikat{Opis: "Ten login jest już zajęty"} t, _ := template.ParseFiles("rejestracja.html") t.Execute(w, p) }}else{ p := komunikat{Opis: "Login i hasło nie mogą być puste, muszą się składać tylko z liter i cyfr i mieć od 7 do 9 znaków."} t, _ := template.ParseFiles("rejestracja.html") t.Execute(w, p) }}else{ p := komunikat{Opis: "Hasła muszą być takie same"} t, _ := template.ParseFiles("rejestracja.html") t.Execute(w, p)} }else{ p := komunikat{Opis: ""} t, _ := template.ParseFiles("rejestracja.html") t.Execute(w, p) } } func start(w http.ResponseWriter, r *http.Request) { p := Uzytkownicy{Url: "/start"} t, _ := template.ParseFiles("start.html") t.Execute(w, p) } func wymiary(w http.ResponseWriter, r *http.Request) { db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil { panic(err.Error()) } defer db.Close() if getCookie(w,r)=="brak" { p := Plan{Opis: "zakładka"} t, _ := template.ParseFiles("brakdostepu.html") t.Execute(w, p) }else{ p := Plan{Opis: ""} var IsNumber = regexp.MustCompile(`^\d+.?\d{1}$`).MatchString if r.Method == "POST" { nazwa := r.FormValue("Nazwa") wymiar := r.FormValue("wymiar") Akcja := r.FormValue("Akcja") DataEdycja := r.FormValue("DataEdycja") currentTime := time.Now() data:= currentTime.Format("2006-01-02") fmt.Println(getCookie(w,r)) rows, err := db.Query("SELECT COUNT(*) FROM baza.wymiary where nazwa=? and data=? and id_uzytkownik=?",nazwa,data, getCookie(w,r)) if err != nil {panic(err.Error())} for rows.Next() { var istnieje int err = rows.Scan(&istnieje) if err != nil {panic(err.Error()) } rows4, err := db.Query("SELECT COUNT(*) FROM baza.wymiary where nazwa=? and data=? and id_uzytkownik=?",nazwa,DataEdycja, getCookie(w,r)) if err != nil {panic(err.Error())} for rows4.Next() { var istnieje2 int err = rows4.Scan(&istnieje2) if err != nil {panic(err.Error()) } if istnieje==0 && Akcja=="Dodaj" && IsNumber(wymiar) && len(wymiar)<6{ insert, err := db.Query("INSERT INTO baza.wymiary ( id_uzytkownik, wymiar, nazwa, data) VALUES ( ?,?,?,?)",getCookie(w,r), wymiar, nazwa, data) if err != nil { panic(err.Error())} defer insert.Close() }else if Akcja=="Edytuj" && IsNumber(wymiar) && len(wymiar)<6 && istnieje2!=0 { UPDATE, err := db.Query("UPDATE baza.wymiary set wymiar=? where nazwa=? and data=? and id_uzytkownik=?",wymiar, nazwa, DataEdycja, getCookie(w,r)) if err != nil { panic(err.Error())} defer UPDATE.Close() }else if Akcja=="Usun"{ DELETE, err := db.Query("DELETE from baza.wymiary where nazwa=? and id_uzytkownik=?", nazwa, getCookie(w,r)) if err != nil { panic(err.Error())} defer DELETE.Close() }else if istnieje!=0 && Akcja=="Dodaj"{ p = Plan{Opis: "Dodano już dzisiaj ten wymiar."} }else if istnieje2==0 && Akcja=="Edytuj"{ p = Plan{Opis: "Podano złą datę."} }else{ p = Plan{Opis: "Wszytkie pola formularza muszą być uzupełnione.Podane dane muszą być liczbami mniejszymi od 999 , całkowitymi lub z dokładnością do jednego miejsca po kropce."} }}}} rows5, err := db.Query("SELECT nazwa from wymiary where id_uzytkownik=? group by nazwa",getCookie(w,r)) if err != nil {panic(err.Error())} emp := Wymiary{} res := []Wymiary{} for rows5.Next() { var nazwa string err = rows5.Scan(&nazwa) if err != nil {panic(err.Error()) } emp.Nazwa = nazwa rows2, err := db.Query("SELECT wymiar, data from wymiary where nazwa=? and id_uzytkownik=?",nazwa, getCookie(w,r)) if err != nil {panic(err.Error())} emp2 := Wymiary_2{} res2 := []Wymiary_2{} for rows2.Next() { var wymiar int var data string err = rows2.Scan(&wymiar, &data) if err != nil {panic(err.Error()) } emp2.Wymiar = wymiar emp2.Data = data res2= append(res2, emp2) } emp.Wymiary_2=res2 res= append(res, emp) } tmpl5.ExecuteTemplate(w, "Index", res) rows3, err := db.Query("select nazwa from baza.wymiary where id_uzytkownik=? group by nazwa",getCookie(w,r)) emp3 := Plan{} res3 := []Plan{} for rows3.Next() { var nazwa string err = rows3.Scan(&nazwa) if err != nil {panic(err.Error()) } emp3.Nazwa = nazwa res3 = append(res3, emp3) } tmpl11.ExecuteTemplate(w, "Index2", res3) t, _ := template.ParseFiles("komunikat.html") t.Execute(w, p) } } func main() { db, err := sql.Open("mysql", "finley:password@tcp(127.0.0.1:3306)/baza") if err != nil { panic(err.Error()) } defer db.Close() /* //wpisywanie do bazy insert, err := db.Query("INSERT INTO trening_rzeczywisty VALUES ( 1, 1, 1, 22, 33, 44 )") if err != nil { panic(err.Error()) } defer insert.Close() */ //wybieranie z bazy /* results, err := db.Query("SELECT login FROM uzytkownicy") if err != nil { panic(err.Error()) } for results.Next() { var login string err = results.Scan(&login) if err != nil { panic(err.Error()) } }*/ /* //usuwanie wiersza z bazy insertq, err := db.Query("DELETE FROM uzytkownicy WHERE id_uzytkownik=4") if err != nil { panic(err.Error()) } defer insertq.Close() */ http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) http.HandleFunc("/trening/", treningHandler) // http.HandleFunc("/wypisz_usun/", wypiszHandler_usun) http.HandleFunc("/logowanie", logowanieHandler) http.HandleFunc("/planer/", planowanieTreningu) http.HandleFunc("/cwiczenie/", opisCwiczenia) http.HandleFunc("/wyniki/", wynikiHandler) http.HandleFunc("/dodajcwiczenie/", dodaj_cwiczenieHandler) http.HandleFunc("/usuncwiczenie/", usun_cwiczenieHandler) http.HandleFunc("/rejestracja/", rejestracja) http.HandleFunc("/wymiary/", wymiary) http.HandleFunc("/zmianaUstawien/", zmianaUstawien) http.HandleFunc("/start/", start) http.ListenAndServe(":8099", nil) }