Amazing-Python-Scripts

Форк
0
696 строк · 21.8 Кб
1
# +++++++++++++MODULE++++++++++++++++
2
from tkinter import *
3
from tkinter import messagebox
4
import pickle
5
import time
6
from datetime import date, datetime
7
from random import randint
8
import os.path
9

10

11
# ++++++++++++++++WINDOW++++++++++++++++
12
window = Tk()
13
window.title("Login")
14
window.geometry("670x770")
15
impp = PhotoImage(file="images/imap.png")
16
window.iconphoto(False, impp)
17
# window.geometry("1535x863") ------ my pc resolutuion
18

19
"""To get your Monitor's width"""
20
# screen_width = window.winfo_screenwidth()
21

22
"""To get your Monitor's height"""
23
# screen_height = window.winfo_screenheight()
24

25
"""Inserting values"""
26
# size=str(screen_width)+'x'+str(screen_height)
27
# window.geometry(size)
28

29
"""Make window Non-Resizable"""
30
window.resizable(0, 0)
31

32
""" Remove maximize,minimize,cancel buttons"""
33
# window.overrideredirect(True)
34

35

36
# +++++++++++++++++FUNCTIONS+++++++++++++++++
37

38

39
def togetdate():
40
    today = date.today()
41
    return today
42

43

44
def togettime():
45
    now = datetime.now()
46
    time = now.strftime("%H:%M:%S")
47
    return time
48

49

50
def reset():
51
    username.delete(0, END)
52
    password.delete(0, END)
53
    messagebox.showinfo("Reset", "Fields Has Been Reset..!")
54

55

56
def signup():
57
    root = Toplevel()
58
    root.title("SignUp From")
59
    root.geometry("1400x730")
60
    root.iconphoto(False, impp)
61

62
    """screen_width = root.winfo_screenwidth()
63
    screen_height = root.winfo_screenheight()
64
    size=str(screen_width)+'x'+str(screen_height)
65
    root.geometry(size)
66
    root.overrideredirect(True)"""
67

68
    root.resizable(0, 0)
69

70
    # ___________Photos_________________
71

72
    registerimage = PhotoImage(file="images/register.png")
73
    resetimage = PhotoImage(file="images/reset.png")
74
    backto = PhotoImage(file="images/back.png")
75
    exitimage = PhotoImage(file="images/exit.png")
76
    bgimage = PhotoImage(file="images/bg.png")
77
    lefticon = PhotoImage(file="images/xx.png")
78

79
    bg = Label(root, image=bgimage)
80
    bg.pack()
81

82
    def quitt():
83
        root.destroy()
84

85
    def final(firstname, lastname, mobilenumber, username, password, gender):
86
        pop = Toplevel()
87
        pop.title("Confirmation")
88
        pop.geometry("610x610")
89
        pop.resizable(0, 0)
90
        pop.config(bg="yellow")
91
        pop.iconphoto(False, impp)
92

93
        def close():
94
            pop.destroy()
95

96
        def togetdate():
97
            today = date.today()
98
            return str(today)
99

100
        def togettime():
101
            now = datetime.now()
102
            time = now.strftime("%H:%M:%S")
103
            return str(time)
104

105
        def create(firstname, lastname, mobilenumber, username, password, gender):
106
            with open("password.dat", "ab") as Myfile:
107
                record = [
108
                    username,
109
                    password,
110
                    firstname,
111
                    lastname,
112
                    mobilenumber,
113
                    gender,
114
                    togetdate() + " " + togettime(),
115
                ]
116
                pickle.dump(record, Myfile)
117
                Myfile.close()
118
            messagebox.showinfo(
119
                "Done", "Account Created Successfully.!", parent=pop)
120
            pop.destroy()
121

122
        Label(
123
            pop,
124
            text="    Confirm Your details",
125
            bg="yellow",
126
            fg="BLUE",
127
            font=("Berlin Sans FB Demi", 30, "bold"),
128
        ).grid(row=0, column=0, columnspan=4)
129
        Label(
130
            pop,
131
            text="",
132
            bg="yellow",
133
            fg="BLUE",
134
            font=("Berlin Sans FB Demi", 20, "bold"),
135
        ).grid(row=1, column=0, columnspan=4)
136
        Label(
137
            pop, text="  Name :", bg="yellow", fg="red", font=("Rockwell", 18, "bold")
138
        ).grid(sticky=W, row=2, column=0)
139
        Label(
140
            pop,
141
            text=firstname + lastname,
142
            bg="yellow",
143
            fg="black",
144
            font=("Agency FB", 20, "bold"),
145
        ).grid(sticky=W, row=2, column=2)
146
        Label(
147
            pop,
148
            text="  Mobile Number :",
149
            bg="yellow",
150
            fg="red",
151
            font=("Rockwell", 18, "bold"),
152
        ).grid(sticky=W, row=3, column=0)
153
        Label(
154
            pop,
155
            text=mobilenumber,
156
            bg="yellow",
157
            fg="black",
158
            font=("Agency FB", 20, "bold"),
159
        ).grid(sticky=W, row=3, column=2)
160
        Label(
161
            pop,
162
            text="  Username :",
163
            bg="yellow",
164
            fg="red",
165
            font=("Rockwell", 18, "bold"),
166
        ).grid(sticky=W, row=4, column=0)
167
        Label(
168
            pop, text=username, bg="yellow", fg="black", font=("Agency FB", 20, "bold")
169
        ).grid(sticky=W, row=4, column=2)
170
        Label(
171
            pop,
172
            text="  Password :",
173
            bg="yellow",
174
            fg="red",
175
            font=("Rockwell", 18, "bold"),
176
        ).grid(sticky=W, row=5, column=0)
177
        Label(
178
            pop, text=password, bg="yellow", fg="black", font=("Agency FB", 20, "bold")
179
        ).grid(sticky=W, row=5, column=2)
180

181
        Label(
182
            pop, text="  Gender :", bg="yellow", fg="red", font=("Rockwell", 18, "bold")
183
        ).grid(sticky=W, row=6, column=0)
184
        Label(
185
            pop, text=gender, bg="yellow", fg="black", font=("Agency FB", 20, "bold")
186
        ).grid(sticky=W, row=6, column=2)
187

188
        Label(
189
            pop,
190
            text="  Date Of Account Creation : ",
191
            bg="yellow",
192
            fg="red",
193
            font=("Rockwell", 18, "bold"),
194
        ).grid(sticky=W, row=7, column=0)
195
        Label(
196
            pop,
197
            text=togetdate() + "  " + togettime(),
198
            bg="yellow",
199
            fg="black",
200
            font=("Agency FB", 20, "bold"),
201
        ).grid(sticky=W, row=7, column=2)
202

203
        Label(pop, text="", bg="yellow", fg="red", font=("Rockwell", 18, "bold")).grid(
204
            sticky=W, row=9, column=0
205
        )
206
        Label(pop, text="", bg="yellow", fg="red", font=("Rockwell", 18, "bold")).grid(
207
            sticky=W, row=10, column=0
208
        )
209
        Button(
210
            pop,
211
            text="Create Account ",
212
            cursor="hand2",
213
            bg="Black",
214
            fg="white",
215
            font=("Rockwell", 18, "bold"),
216
            command=lambda: create(
217
                firstname, lastname, mobilenumber, username, password, gender
218
            ),
219
        ).grid(sticky=N, row=11, column=0)
220
        Button(
221
            pop,
222
            text="   Retry   ",
223
            cursor="hand2",
224
            bg="Black",
225
            fg="white",
226
            font=("Rockwell", 18, "bold"),
227
            command=close,
228
        ).grid(sticky=N, row=11, column=2)
229

230
        pop.mainloop()
231

232
    def reset():
233
        username.delete(0, END)
234
        password.delete(0, END)
235
        captcaentry.delete(0, END)
236
        mobilenumber.delete(0, END)
237
        lastname.delete(0, END)
238
        firstname.delete(0, END)
239
        messagebox.showinfo("Reset", "Fields Has Been Reset..!", parent=root)
240

241
    def signup(
242
        captcavalue,
243
        captcaentry,
244
        firstname,
245
        lastname,
246
        mobilenumber,
247
        username,
248
        password,
249
        gender,
250
        verify,
251
        verifyy,
252
    ):
253
        if verify == 1:
254
            if captcavalue == str(captcaentry):
255
                if len(firstname) != 0 and firstname.isalpha():
256
                    if len(lastname) != 0 and lastname.isalpha():
257
                        if (
258
                            len(mobilenumber) != 0
259
                            and mobilenumber.isdigit()
260
                            and len(mobilenumber) == 10
261
                        ):
262
                            if len(username) != 0 and username.isalnum():
263
                                if len(gender) != 0 and gender != "Select Any One":
264
                                    if len(password) > 6:
265
                                        if verifyy == "XYZ":
266
                                            if os.path.isfile("password.dat"):
267
                                                usernames = []
268
                                                with open(
269
                                                    "password.dat", "rb"
270
                                                ) as Myfile:
271
                                                    while True:
272
                                                        try:
273
                                                            a = pickle.load(
274
                                                                Myfile)
275
                                                            usernames.append(
276
                                                                a[0])
277

278
                                                        except EOFError:
279
                                                            break
280

281
                                                if username not in usernames:
282
                                                    final(
283
                                                        firstname,
284
                                                        lastname,
285
                                                        mobilenumber,
286
                                                        username,
287
                                                        password,
288
                                                        gender,
289
                                                    )
290
                                                else:
291
                                                    messagebox.showwarning(
292
                                                        "ERROR",
293
                                                        "Username Already Exixts.!",
294
                                                        parent=root,
295
                                                    )
296
                                            else:
297
                                                final(
298
                                                    firstname,
299
                                                    lastname,
300
                                                    mobilenumber,
301
                                                    username,
302
                                                    password,
303
                                                    gender,
304
                                                )
305
                                        else:
306
                                            messagebox.showwarning(
307
                                                "ERROR",
308
                                                "Please Enter Correct Verification code.!",
309
                                                parent=root,
310
                                            )
311
                                    else:
312
                                        messagebox.showwarning(
313
                                            "ERROR",
314
                                            "Please Enter Password Of More Than 6 Digits",
315
                                            parent=root,
316
                                        )
317

318
                                else:
319
                                    messagebox.showwarning(
320
                                        "ERROR",
321
                                        "Please Enter Proper Gender.!",
322
                                        parent=root,
323
                                    )
324
                            else:
325
                                messagebox.showwarning(
326
                                    "ERROR", "Please Enter Username.!", parent=root
327
                                )
328
                        else:
329
                            messagebox.showwarning(
330
                                "ERROR",
331
                                "Please Enter Proper Mobile Number.!",
332
                                parent=root,
333
                            )
334
                    else:
335
                        messagebox.showwarning(
336
                            "ERROR", "Please Enter Lastname.!", parent=root
337
                        )
338
                else:
339
                    messagebox.showwarning(
340
                        "ERROR", "Please Enter Firstname.!", parent=root
341
                    )
342
            else:
343
                messagebox.showwarning("ERROR", "CAPTCHA ERROR", parent=root)
344
        else:
345
            messagebox.showwarning(
346
                "ERROR", "You Have Not Agreed To Our Policy", parent=root
347
            )
348

349
    signupframe = LabelFrame(bg, bg="white", width=1300, height=600, bd=0)
350
    signupframe.place(x=50, y=50)
351

352
    v = Label(root, image=lefticon, bd=0)
353
    v.place(x=50, y=52)
354
    """rocket=PhotoImage(file='images/logo_white.png')
355
    vv=Label(root,image=rocket,bd=0,bg="blue").place(x=70,y=72)"""
356

357
    signuplabel = Label(
358
        root,
359
        text="SIGNUP HERE",
360
        font=("Rockwell Extra Bold", 23, "bold"),
361
        bg="white",
362
        fg="Red",
363
    )
364
    signuplabel.place(x=870, y=100)
365

366
    # firstname label------------------------
367
    firstnamelable = Label(
368
        root,
369
        text="FIRST NAME:",
370
        font=("Bahnschrift", 12, "bold"),
371
        bg="white",
372
        fg="blue",
373
    )
374
    firstnamelable.place(x=700, y=170)
375

376
    # firstname entery-----------------------
377
    firstname = Entry(root, width=20, bg="silver", font=(8), fg="black")
378
    firstname.place(x=700, y=195)
379

380
    # lastname label------------------------
381
    lastnamelable = Label(
382
        root, text="LAST NAME:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"
383
    )
384
    lastnamelable.place(x=1050, y=170)
385

386
    # lasttname entery-----------------------
387
    lastname = Entry(root, width=20, bg="silver", font=(8), fg="black")
388
    lastname.place(x=1050, y=195)
389

390
    # mobile label------------------------
391
    mobilenumberlable = Label(
392
        root,
393
        text="MOBILE NUMBER:",
394
        font=("Bahnschrift", 12, "bold"),
395
        bg="white",
396
        fg="blue",
397
    )
398
    mobilenumberlable.place(x=700, y=235)
399

400
    # mobilenumber entery-----------------------
401
    mobilenumber = Entry(root, width=20, bg="silver", font=(8), fg="black")
402
    mobilenumber.place(x=700, y=260)
403

404
    # gender lable ---------------------------
405
    genderlable = Label(
406
        root, text="GENDER:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"
407
    )
408
    genderlable.place(x=1050, y=240)
409

410
    # genderentery-----------------------
411
    clicker = StringVar()
412
    clicker.set("Select Any One")
413
    gender = OptionMenu(root, clicker, "Male", "Female", "Other")
414
    gender.place(x=1050, y=262)
415
    gender.config(bg="silver", fg="blue")
416
    gender["menu"].config(bg="Yellow")
417

418
    # captca label------------------------
419
    captcalable = Label(
420
        root, text="CAPTCHA:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"
421
    )
422
    captcalable.place(x=1050, y=305)
423
    captcavalue = str(randint(1000, 5000))
424
    captca = Label(
425
        root, text=captcavalue, font=("Rockwell", 20, "bold"), bg="blue", fg="white"
426
    )
427
    captca.place(x=1100, y=335)
428

429
    # captcaentery-----------------------
430
    captcaentry = Entry(root, width=20, bg="silver", font=(8), fg="black")
431
    captcaentry.place(x=1050, y=385)
432

433
    # username label------------------------
434
    usernamelable = Label(
435
        root, text="USERNAME:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"
436
    )
437
    usernamelable.place(x=700, y=300)
438

439
    # usernameentery-----------------------
440
    username = Entry(root, width=20, bg="silver", font=(8), fg="black")
441
    username.place(x=700, y=325)
442

443
    # password label------------------------
444
    passwordlable = Label(
445
        root, text="PASSWORD:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"
446
    )
447
    passwordlable.place(x=700, y=363)
448

449
    # passwordentery-----------------------
450
    password = Entry(root, width=20, bg="silver", font=(8), fg="black")
451
    password.place(x=700, y=390)
452

453
    # verify label------------------------
454
    verifylable = Label(
455
        root,
456
        text="VERIFICATION CODE:",
457
        font=("Bahnschrift", 12, "bold"),
458
        bg="white",
459
        fg="blue",
460
    )
461
    verifylable.place(x=700, y=440)
462

463
    # verifyentery-----------------------
464
    verifyy = Entry(root, width=10, bg="silver", font=(8), fg="brown")
465
    verifyy.place(x=860, y=440)
466

467
    # agreement------------------
468
    cb = IntVar()
469
    cb.set(0)
470
    verify = Checkbutton(
471
        root,
472
        variable=cb,
473
        text="Yes, I Agree To All The Terms & Conditions",
474
        font=("Bahnschrift", 12, "bold"),
475
        bg="white",
476
        onvalue=1,
477
        offvalue=0,
478
    )
479
    verify.place(x=700, y=490)
480

481
    signupbutton = Button(
482
        root,
483
        cursor="hand2",
484
        image=registerimage,
485
        command=lambda: signup(
486
            captcavalue,
487
            captcaentry.get(),
488
            firstname.get(),
489
            lastname.get(),
490
            mobilenumber.get(),
491
            username.get(),
492
            password.get(),
493
            clicker.get(),
494
            cb.get(),
495
            verifyy.get(),
496
        ),
497
        bd=0,
498
    )
499
    signupbutton.place(x=800, y=540)
500

501
    resetbutton = Button(root, cursor="hand2",
502
                         image=resetimage, command=reset, bd=0)
503
    resetbutton.place(x=1050, y=530)
504

505
    exitbutton = Button(root, cursor="hand2",
506
                        image=exitimage, command=quitt, bd=0)
507
    exitbutton.place(x=1200, y=595)
508

509
    root.mainloop()
510

511

512
def login(usernamee, passwordd):
513
    if os.path.isfile("password.dat"):
514
        if len(usernamee) != 0:
515
            if len(passwordd) != 0:
516
                alllogintry(usernamee, passwordd)
517
                F = open("password.dat", "ab")
518
                F.close()
519
                with open("password.dat", "rb") as Myfile:
520
                    c = 0
521
                    l = 0
522
                    while True:
523
                        try:
524
                            a = pickle.load(Myfile)
525
                            if a[0] == usernamee and a[1] == passwordd:
526
                                l = l + 1
527
                                logindetails(usernamee)
528
                                # messagebox.showinfo("Login","Login Successfull.!")
529
                                username.delete(0, END)
530
                                password.delete(0, END)
531
                                mainwindow()
532
                            else:
533
                                c = c + 1
534
                                l = l + 1
535

536
                        except EOFError:
537
                            break
538

539
                if c == l:
540
                    intro = "Username And Password Did Not Matched"
541
                    messagebox.showerror("Login", intro)
542

543
            else:
544
                messagebox.showwarning("WARNING", "Please Enter Password.!")
545

546
        else:
547
            messagebox.showwarning("WARNING", "Please Enter UserName.!")
548
    else:
549
        messagebox.showinfo(
550
            "NO PRE-EXISTING DATA",
551
            "No Pre-exesting username And Password Found!.\n\nCreate New profile",
552
        )
553

554

555
def alllogintry(username, password):
556
    file = open("alllogintry.txt", "a")
557
    entry = str(
558
        {
559
            "Name": str(username),
560
            "Password": str(password),
561
            "Date": str(togetdate()),
562
            "time": str(togettime()),
563
        }
564
    )
565
    # a="Name :--> "+str(username)+"  Password :--> "+str(password)+"   Date :--> "+str(togetdate())+"   Time :--> "+str(togettime())
566
    file.write(entry)
567
    file.write("\n")
568
    file.close()
569

570

571
def logindetails(username):
572
    file = open("logins.txt", "a")
573
    entry = str(
574
        {"Name": str(username), "Date": str(
575
            togetdate()), "time": str(togettime())}
576
    )
577
    # a="Name :--> "+str(username)+"   Date :--> "+str(togetdate())+"   Time :--> "+str(togettime())
578
    file.write(entry)
579
    file.write("\n")
580
    file.close()
581

582

583
def quit():
584
    window.destroy()
585

586

587
def mainwindow():
588
    main = Toplevel()
589
    main.title("Login")
590
    main.geometry("690x750")
591

592
    def quitt():
593
        main.destroy()
594

595
    Label(
596
        main, text="Work In Progress.!!", font=("Bahnschrift", 20, "bold"), bg="white"
597
    ).pack()
598
    Button(main, text="Exit", command=quitt).pack()
599

600
    main.mainloop()
601

602

603
# ------------------------ Add a menu bar -------------------------------
604
menu = Menu(window)
605
window.config(menu=menu)
606
filemenu = Menu(menu)
607
menu.add_cascade(label="COMMANDS", menu=filemenu)
608
filemenu.add_command(label="Quit", command=quit)
609

610

611
# __main__
612

613
"""Images"""
614
randomnumber = str(randint(1, 3))
615
bgimage = PhotoImage(file="images/bg" + randomnumber + ".png")
616
loginicon = PhotoImage(file="images/loginicon.png")
617
passicon = PhotoImage(file="images/passicon.png")
618
loginimage = PhotoImage(file="images/login.png")
619
registerimage = PhotoImage(file="images/register.png")
620
resetimage = PhotoImage(file="images/reset.png")
621
bg = Label(window, image=bgimage)
622
bg.pack()
623

624
"""++++++++++++Contents++++++++++++++++"""
625

626

627
"""Login contents"""
628
loginframe = LabelFrame(bg, text="", bg="white", width=450, height=600, bd=0)
629
loginframe.place(x=100, y=100)
630

631
loginlabel = Label(
632
    window,
633
    text="LOGIN HERE",
634
    font=("Rockwell Extra Bold", 23, "bold"),
635
    bg="white",
636
    fg="Red",
637
)
638
loginlabel.place(x=215, y=190)
639

640

641
"""username contents"""
642
vv = Label(window, image=loginicon)
643
vv.place(x=150, y=305)
644

645
usernamelable = Label(
646
    window, text="USERNAME:", font=("Bahnschrift", 15, "bold"), bg="white"
647
)
648
usernamelable.place(x=150, y=270)
649

650
username = Entry(window, width=30, bg="silver", font=(8), fg="blue")
651
username.place(x=190, y=305)
652

653

654
"""password contents"""
655
vvv = Label(window, image=passicon)
656
vvv.place(x=150, y=405)
657

658
passwordlable = Label(
659
    window, text="PASSWORD:", font=("Bahnschrift", 15, "bold"), bg="white"
660
)
661
passwordlable.place(x=150, y=370)
662

663
password = Entry(window, width=30, bg="silver", font=(8), fg="blue")
664
password.place(x=190, y=405)
665

666
"""login button"""
667
loginbutton = Button(
668
    window,
669
    image=loginimage,
670
    cursor="hand2",
671
    command=lambda: login(str(username.get()), str(password.get())),
672
    bd=0,
673
)
674
loginbutton.place(x=200, y=478)
675

676
"""reset button"""
677
resetbutton = Button(window, cursor="hand2",
678
                     image=resetimage, command=reset, bd=0)
679
resetbutton.place(x=365, y=472)
680

681
"""signup contents"""
682
registerlable = Label(
683
    window,
684
    text="Are You A New User :",
685
    font=("Bahnschrift", 14),
686
    fg="black",
687
    bg="white",
688
)
689
registerlable.place(x=190, y=600)
690

691
signupbutton = Button(window, cursor="hand2",
692
                      image=registerimage, command=signup, bd=0)
693
signupbutton.place(x=380, y=595)
694

695

696
window.mainloop()
697

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.