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