1+ import tkinter as tk
2+ from tkinter import ttk
3+ import mysql .connector
4+ from tkinter import messagebox
5+ from tkinter import filedialog
6+
7+ win = tk .Tk ()
8+ win .title ("Entry Potal" )
9+ win .geometry ("1000x600" )
10+
11+
12+ # fram for regestraction fome..
13+ label_frame = ttk .LabelFrame (win , text = 'Registration Form' )
14+ # label_frame.grid(row=0,column=0,sticky=tk.S)
15+ label_frame .pack (side = tk .LEFT ,fill = tk .BOTH ,padx = 15 ,pady = 16 )
16+
17+ # labels................
18+ First_name_label = tk .Label (label_frame ,text = 'First name' )
19+ First_name_label .grid (row = 0 ,column = 0 ,sticky = tk .W )
20+
21+ Surname_label = tk .Label (label_frame ,text = 'Surname' )
22+ Surname_label .grid (row = 0 ,column = 2 ,sticky = tk .W )
23+
24+ Email_address_label = tk .Label (label_frame ,text = 'Email Address' )
25+ Email_address_label .grid (row = 3 ,column = 0 ,columnspan = 4 ,sticky = tk .W ,pady = 5 )
26+
27+ Birthday_label = tk .Label (label_frame ,text = 'Date of Birth' )
28+ Birthday_label .grid (row = 5 ,columnspan = 2 ,sticky = tk .W ,pady = 5 )
29+
30+ Date_label = tk .Label (label_frame ,text = 'Date' )
31+ Date_label .grid (row = 6 ,column = 0 ,sticky = tk .E ,pady = 5 ,padx = 25 )
32+
33+ Month_label = tk .Label (label_frame ,text = 'Month' )
34+ Month_label .grid (row = 6 ,column = 1 ,sticky = tk .W ,pady = 5 )
35+
36+ Year_label = tk .Label (label_frame ,text = 'Year' )
37+ Year_label .grid (row = 6 ,column = 2 ,sticky = tk .W ,pady = 5 )
38+
39+ Gender_label = tk .Label (label_frame ,text = 'Gender' )
40+ Gender_label .grid (row = 8 ,columnspan = 2 ,sticky = tk .W ,pady = 5 )
41+
42+ New_Password_label = tk .Label (label_frame ,text = 'New Password' )
43+ New_Password_label .grid (row = 13 ,columnspan = 2 ,sticky = tk .W ,pady = 5 )
44+
45+ Confirm_Password_label = tk .Label (label_frame ,text = 'Confirm Password' )
46+ Confirm_Password_label .grid (row = 15 ,columnspan = 2 ,sticky = tk .W ,pady = 5 )
47+
48+ # inputs...
49+ name_var = tk .StringVar ()
50+ First_name_entry = ttk .Entry (label_frame ,width = 30 ,textvariable = name_var )
51+ First_name_entry .grid (row = 1 ,column = 0 ,columnspan = 2 ,padx = 5 ,sticky = tk .W )
52+
53+ surname_var = tk .StringVar ()
54+ Surname_entry = ttk .Entry (label_frame ,width = 30 ,textvariable = surname_var )
55+ Surname_entry .grid (row = 1 ,column = 2 ,padx = 5 ,sticky = tk .W )
56+
57+ email_var = tk .StringVar ()
58+ Email_address_entry = ttk .Entry (label_frame , width = 63 ,textvariable = email_var )
59+ Email_address_entry .grid (row = 4 ,columnspan = 6 ,padx = 5 )
60+
61+ new_pass_var = tk .StringVar ()
62+ New_Password_entry = ttk .Entry (label_frame , width = 63 ,textvariable = new_pass_var )
63+ New_Password_entry .grid (row = 14 ,columnspan = 6 ,padx = 5 )
64+
65+ con_pass_var = tk .StringVar ()
66+ Confirm_Password_entry = ttk .Entry (label_frame , width = 63 ,textvariable = con_pass_var )
67+ Confirm_Password_entry .grid (row = 16 ,columnspan = 6 ,padx = 5 )
68+
69+ # birthday combobox..
70+ date_var = tk .IntVar ()
71+ Date_combobox = ttk .Combobox (label_frame ,width = 4 ,textvariable = date_var ,state = 'readonly' )
72+ Date_combobox ['values' ] = (1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31 )
73+ Date_combobox .current (0 )
74+ Date_combobox .grid (row = 7 ,columnspan = 1 ,padx = 5 ,sticky = tk .E )
75+
76+ month_var = tk .StringVar ()
77+ Month_combobox = ttk .Combobox (label_frame ,width = 10 ,textvariable = month_var ,state = 'readonly' )
78+ Month_combobox ['values' ] = ('January' ,'February' ,'March' ,'April' ,'May' ,'June' ,'July' ,'August' ,'September' ,'October' ,'Novermber' ,'December' )
79+ Month_combobox .current (0 )
80+ Month_combobox .grid (row = 7 ,column = 1 ,columnspan = 2 ,sticky = tk .W )
81+
82+ year_var = tk .StringVar ()
83+ Year_combobox = ttk .Combobox (label_frame ,width = 8 ,textvariable = year_var ,state = 'readonly' )
84+ Year_combobox ['values' ] = (1995 ,1996 ,1997 ,1998 ,1999 ,2000 ,2001 ,2002 ,2003 ,2004 ,2005 ,2006 ,2007 ,2008 ,2009 ,2010 ,2011 ,2012 ,2013 ,2014 ,2015 ,2016 ,2017 ,2018 ,2019 )
85+ Year_combobox .current (0 )
86+ Year_combobox .grid (row = 7 ,column = 2 ,columnspan = 2 ,padx = 5 ,sticky = tk .W )
87+
88+ # radio button
89+ gender_var = tk .StringVar ()
90+ Female_btn = ttk .Radiobutton (label_frame ,text = 'Female' ,value = 'female' ,variable = gender_var )
91+ Female_btn .grid (row = 9 ,column = 0 )
92+
93+ Male_btn = ttk .Radiobutton (label_frame ,text = 'Male' ,value = 'male' ,variable = gender_var )
94+ Male_btn .grid (row = 10 ,column = 0 )
95+
96+ Others_btn = ttk .Radiobutton (label_frame ,text = 'Others' ,value = 'other' ,variable = gender_var )
97+ Others_btn .grid (row = 11 ,column = 0 )
98+
99+ check_btn_var = tk .StringVar ()
100+ check_btn = ttk .Checkbutton (label_frame ,text = 'I Confirm that all details are correct' ,variable = check_btn_var )
101+ check_btn .grid (row = 17 ,columnspan = 2 ,sticky = tk .W ,pady = 15 ,padx = 15 )
102+
103+
104+ def sign_up (event = None ):
105+ user_name = name_var .get ()
106+ user_surname = surname_var .get ()
107+ user_email = email_var .get ()
108+ user_date = date_var .get ()
109+ user_month = month_var .get ()
110+ user_year = year_var .get ()
111+ user_new_pass = new_pass_var .get ()
112+ user_con_pass = con_pass_var .get ()
113+ user_gender = gender_var .get ()
114+ click_check_btn = check_btn_var .get ()
115+ # print(f"{user_name}:{user_surname}:{user_email}:{user_date}:{user_month}:{user_year}:{user_new_pass}:{user_con_pass}")
116+
117+ if user_name and user_surname and user_email and user_gender and user_new_pass and user_con_pass :
118+ if user_new_pass == user_con_pass :
119+ if click_check_btn :
120+
121+ conn = mysql .connector .connect (host = 'localhost' ,username = 'root' ,password = '' ,database = 'pro_data' )
122+
123+ cursor = conn .cursor ()
124+
125+ query = 'INSERT INTO user_detail(user_names,user_surnames,user_emails,user_dd,user_mm,user_yy,user_passwords,user_genders) VALUES(%s,%s,%s,%s,%s,%s,%s,%s)'
126+ value = (user_name ,user_surname ,user_email ,user_date ,user_month ,user_year ,user_new_pass ,user_gender )
127+ cursor .execute (query ,value )
128+ conn .commit ()
129+ conn .close ()
130+ print ("Done!" )
131+ messagebox .showinfo ("Registraction" ,'Your Details are register Succesfully!\n Now you can login' )
132+ New_Password_entry .delete (0 ,tk .END )
133+ Email_address_entry .delete (0 ,tk .END )
134+ Confirm_Password_entry .delete (0 ,tk .END )
135+ First_name_entry .delete (0 ,tk .END )
136+ Surname_entry .delete (0 ,tk .END )
137+ Date_combobox .current (0 )
138+ Month_combobox .current (0 )
139+ Year_combobox .current (0 )
140+
141+
142+ else :
143+ mbox = messagebox .showerror ('Error' ,'Please click the Check Box' )
144+ else :
145+ mbox = messagebox .showwarning ("Warning" ,"The password you entered not matched!!\n Enter again" )
146+ New_Password_entry .delete (0 ,tk .END )
147+ Confirm_Password_entry .delete (0 ,tk .END )
148+ else :
149+ mbox = messagebox .showwarning ('Warning' ,'Please fill all required details' )
150+
151+
152+
153+
154+ # submit butn...
155+ Submit_btn = ttk .Button (label_frame ,width = 25 ,text = 'Sign Up' ,command = sign_up )
156+ Submit_btn .grid (row = 18 ,column = 2 ,sticky = tk .W )
157+
158+ # label_frame.bind("<Enter>", sign_up )
159+
160+ # ###### login_surface.............
161+ label_frame_2 = ttk .LabelFrame (win ,text = 'Login Form' )
162+ label_frame_2 .pack (side = tk .RIGHT ,fill = tk .BOTH ,padx = 15 ,pady = 16 )
163+
164+
165+ Login_id = tk .Label (label_frame_2 ,text = "Email Address" )
166+ Login_id .grid (row = 0 ,column = 0 ,sticky = tk .W ,pady = 5 )
167+
168+ password = tk .Label (label_frame_2 ,text = "Password" )
169+ password .grid (row = 3 ,column = 0 ,sticky = tk .W ,pady = 5 )
170+
171+ # inputs........
172+ login_var = tk .StringVar ()
173+ Login_id_input = tk .Entry (label_frame_2 ,width = 63 ,textvariable = login_var )
174+ Login_id_input .grid (row = 2 ,column = 0 ,columnspan = 5 ,pady = 5 ,padx = 5 )
175+ Login_id_input .focus_set ()
176+
177+ password_var = tk .StringVar ()
178+ password_input = tk .Entry (label_frame_2 ,width = 63 ,textvariable = password_var )
179+ password_input .grid (row = 4 ,column = 0 ,columnspan = 5 ,pady = 5 ,padx = 5 )
180+
181+ def login_func (event = None ):
182+ entered_login = login_var .get ()
183+ entered_password = password_var .get ()
184+ print (f'{ entered_login } :{ entered_password } ' )
185+ conn = mysql .connector .connect (host = 'localhost' ,username = 'root' ,password = '' ,database = 'pro_data' )
186+
187+ cursor = conn .cursor ()
188+
189+ query = 'SELECT user_emails,user_passwords FROM user_detail'
190+
191+ cursor .execute (query )
192+ counter = 0
193+ password = []
194+ email = []
195+ for i in cursor :
196+
197+ for j in i :
198+ if counter % 2 == 0 :
199+ email .append (j )
200+ else :
201+ password .append (j )
202+ counter += 1
203+ temp = ''
204+ wemp = ''
205+ if entered_login and entered_password :
206+ for login in email :
207+ if entered_login == login :
208+ temp += 'yes'
209+
210+ for p in password :
211+ if entered_password == p :
212+ wemp += 'yes'
213+ else :
214+ return messagebox .showinfo ('Information' ,'Please enter email id and Password' )
215+
216+ if len (wemp ) > 0 and len (temp ) > 0 :
217+ messagebox .showinfo ('login' ,'done' )
218+ Login_id_input .delete (0 ,tk .END )
219+ password_input .delete (0 ,tk .END )
220+ new_win = tk .Toplevel ()
221+ new_win .geometry ('1000x600+500+200' )
222+ new_win .title ('Home' )
223+ else :
224+ messagebox .showerror ('Error' ,f"Either email and password is incorrect!!\n please type correct email id and password to Login" )
225+ Login_id_input .delete (0 ,tk .END )
226+ password_input .delete (0 ,tk .END )
227+
228+ query_2 = "SELECT user_names from user_detail"
229+ cursor .execute (query_2 )
230+ for i in cursor :
231+ print (i )
232+
233+
234+ # work on home frame.......
235+
236+
237+
238+ conn .commit ()
239+ conn .close ()
240+
241+
242+
243+ login_btn = ttk .Button (label_frame_2 ,width = 25 ,text = 'Login' ,command = login_func )
244+ login_btn .grid (row = 5 ,column = 4 ,sticky = tk .E ,padx = 5 ,pady = 40 )
245+
246+ win .mainloop ()
0 commit comments