Amazing-Python-Scripts
696 строк · 21.8 Кб
1# +++++++++++++MODULE++++++++++++++++
2from tkinter import *3from tkinter import messagebox4import pickle5import time6from datetime import date, datetime7from random import randint8import os.path9
10
11# ++++++++++++++++WINDOW++++++++++++++++
12window = Tk()13window.title("Login")14window.geometry("670x770")15impp = PhotoImage(file="images/imap.png")16window.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"""
30window.resizable(0, 0)31
32""" Remove maximize,minimize,cancel buttons"""
33# window.overrideredirect(True)
34
35
36# +++++++++++++++++FUNCTIONS+++++++++++++++++
37
38
39def togetdate():40today = date.today()41return today42
43
44def togettime():45now = datetime.now()46time = now.strftime("%H:%M:%S")47return time48
49
50def reset():51username.delete(0, END)52password.delete(0, END)53messagebox.showinfo("Reset", "Fields Has Been Reset..!")54
55
56def signup():57root = Toplevel()58root.title("SignUp From")59root.geometry("1400x730")60root.iconphoto(False, impp)61
62"""screen_width = root.winfo_screenwidth()63screen_height = root.winfo_screenheight()
64size=str(screen_width)+'x'+str(screen_height)
65root.geometry(size)
66root.overrideredirect(True)"""
67
68root.resizable(0, 0)69
70# ___________Photos_________________71
72registerimage = PhotoImage(file="images/register.png")73resetimage = PhotoImage(file="images/reset.png")74backto = PhotoImage(file="images/back.png")75exitimage = PhotoImage(file="images/exit.png")76bgimage = PhotoImage(file="images/bg.png")77lefticon = PhotoImage(file="images/xx.png")78
79bg = Label(root, image=bgimage)80bg.pack()81
82def quitt():83root.destroy()84
85def final(firstname, lastname, mobilenumber, username, password, gender):86pop = Toplevel()87pop.title("Confirmation")88pop.geometry("610x610")89pop.resizable(0, 0)90pop.config(bg="yellow")91pop.iconphoto(False, impp)92
93def close():94pop.destroy()95
96def togetdate():97today = date.today()98return str(today)99
100def togettime():101now = datetime.now()102time = now.strftime("%H:%M:%S")103return str(time)104
105def create(firstname, lastname, mobilenumber, username, password, gender):106with open("password.dat", "ab") as Myfile:107record = [108username,109password,110firstname,111lastname,112mobilenumber,113gender,114togetdate() + " " + togettime(),115]116pickle.dump(record, Myfile)117Myfile.close()118messagebox.showinfo(119"Done", "Account Created Successfully.!", parent=pop)120pop.destroy()121
122Label(123pop,124text=" Confirm Your details",125bg="yellow",126fg="BLUE",127font=("Berlin Sans FB Demi", 30, "bold"),128).grid(row=0, column=0, columnspan=4)129Label(130pop,131text="",132bg="yellow",133fg="BLUE",134font=("Berlin Sans FB Demi", 20, "bold"),135).grid(row=1, column=0, columnspan=4)136Label(137pop, text=" Name :", bg="yellow", fg="red", font=("Rockwell", 18, "bold")138).grid(sticky=W, row=2, column=0)139Label(140pop,141text=firstname + lastname,142bg="yellow",143fg="black",144font=("Agency FB", 20, "bold"),145).grid(sticky=W, row=2, column=2)146Label(147pop,148text=" Mobile Number :",149bg="yellow",150fg="red",151font=("Rockwell", 18, "bold"),152).grid(sticky=W, row=3, column=0)153Label(154pop,155text=mobilenumber,156bg="yellow",157fg="black",158font=("Agency FB", 20, "bold"),159).grid(sticky=W, row=3, column=2)160Label(161pop,162text=" Username :",163bg="yellow",164fg="red",165font=("Rockwell", 18, "bold"),166).grid(sticky=W, row=4, column=0)167Label(168pop, text=username, bg="yellow", fg="black", font=("Agency FB", 20, "bold")169).grid(sticky=W, row=4, column=2)170Label(171pop,172text=" Password :",173bg="yellow",174fg="red",175font=("Rockwell", 18, "bold"),176).grid(sticky=W, row=5, column=0)177Label(178pop, text=password, bg="yellow", fg="black", font=("Agency FB", 20, "bold")179).grid(sticky=W, row=5, column=2)180
181Label(182pop, text=" Gender :", bg="yellow", fg="red", font=("Rockwell", 18, "bold")183).grid(sticky=W, row=6, column=0)184Label(185pop, text=gender, bg="yellow", fg="black", font=("Agency FB", 20, "bold")186).grid(sticky=W, row=6, column=2)187
188Label(189pop,190text=" Date Of Account Creation : ",191bg="yellow",192fg="red",193font=("Rockwell", 18, "bold"),194).grid(sticky=W, row=7, column=0)195Label(196pop,197text=togetdate() + " " + togettime(),198bg="yellow",199fg="black",200font=("Agency FB", 20, "bold"),201).grid(sticky=W, row=7, column=2)202
203Label(pop, text="", bg="yellow", fg="red", font=("Rockwell", 18, "bold")).grid(204sticky=W, row=9, column=0205)206Label(pop, text="", bg="yellow", fg="red", font=("Rockwell", 18, "bold")).grid(207sticky=W, row=10, column=0208)209Button(210pop,211text="Create Account ",212cursor="hand2",213bg="Black",214fg="white",215font=("Rockwell", 18, "bold"),216command=lambda: create(217firstname, lastname, mobilenumber, username, password, gender218),219).grid(sticky=N, row=11, column=0)220Button(221pop,222text=" Retry ",223cursor="hand2",224bg="Black",225fg="white",226font=("Rockwell", 18, "bold"),227command=close,228).grid(sticky=N, row=11, column=2)229
230pop.mainloop()231
232def reset():233username.delete(0, END)234password.delete(0, END)235captcaentry.delete(0, END)236mobilenumber.delete(0, END)237lastname.delete(0, END)238firstname.delete(0, END)239messagebox.showinfo("Reset", "Fields Has Been Reset..!", parent=root)240
241def signup(242captcavalue,243captcaentry,244firstname,245lastname,246mobilenumber,247username,248password,249gender,250verify,251verifyy,252):253if verify == 1:254if captcavalue == str(captcaentry):255if len(firstname) != 0 and firstname.isalpha():256if len(lastname) != 0 and lastname.isalpha():257if (258len(mobilenumber) != 0259and mobilenumber.isdigit()260and len(mobilenumber) == 10261):262if len(username) != 0 and username.isalnum():263if len(gender) != 0 and gender != "Select Any One":264if len(password) > 6:265if verifyy == "XYZ":266if os.path.isfile("password.dat"):267usernames = []268with open(269"password.dat", "rb"270) as Myfile:271while True:272try:273a = pickle.load(274Myfile)275usernames.append(276a[0])277
278except EOFError:279break280
281if username not in usernames:282final(283firstname,284lastname,285mobilenumber,286username,287password,288gender,289)290else:291messagebox.showwarning(292"ERROR",293"Username Already Exixts.!",294parent=root,295)296else:297final(298firstname,299lastname,300mobilenumber,301username,302password,303gender,304)305else:306messagebox.showwarning(307"ERROR",308"Please Enter Correct Verification code.!",309parent=root,310)311else:312messagebox.showwarning(313"ERROR",314"Please Enter Password Of More Than 6 Digits",315parent=root,316)317
318else:319messagebox.showwarning(320"ERROR",321"Please Enter Proper Gender.!",322parent=root,323)324else:325messagebox.showwarning(326"ERROR", "Please Enter Username.!", parent=root327)328else:329messagebox.showwarning(330"ERROR",331"Please Enter Proper Mobile Number.!",332parent=root,333)334else:335messagebox.showwarning(336"ERROR", "Please Enter Lastname.!", parent=root337)338else:339messagebox.showwarning(340"ERROR", "Please Enter Firstname.!", parent=root341)342else:343messagebox.showwarning("ERROR", "CAPTCHA ERROR", parent=root)344else:345messagebox.showwarning(346"ERROR", "You Have Not Agreed To Our Policy", parent=root347)348
349signupframe = LabelFrame(bg, bg="white", width=1300, height=600, bd=0)350signupframe.place(x=50, y=50)351
352v = Label(root, image=lefticon, bd=0)353v.place(x=50, y=52)354"""rocket=PhotoImage(file='images/logo_white.png')355vv=Label(root,image=rocket,bd=0,bg="blue").place(x=70,y=72)"""
356
357signuplabel = Label(358root,359text="SIGNUP HERE",360font=("Rockwell Extra Bold", 23, "bold"),361bg="white",362fg="Red",363)364signuplabel.place(x=870, y=100)365
366# firstname label------------------------367firstnamelable = Label(368root,369text="FIRST NAME:",370font=("Bahnschrift", 12, "bold"),371bg="white",372fg="blue",373)374firstnamelable.place(x=700, y=170)375
376# firstname entery-----------------------377firstname = Entry(root, width=20, bg="silver", font=(8), fg="black")378firstname.place(x=700, y=195)379
380# lastname label------------------------381lastnamelable = Label(382root, text="LAST NAME:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"383)384lastnamelable.place(x=1050, y=170)385
386# lasttname entery-----------------------387lastname = Entry(root, width=20, bg="silver", font=(8), fg="black")388lastname.place(x=1050, y=195)389
390# mobile label------------------------391mobilenumberlable = Label(392root,393text="MOBILE NUMBER:",394font=("Bahnschrift", 12, "bold"),395bg="white",396fg="blue",397)398mobilenumberlable.place(x=700, y=235)399
400# mobilenumber entery-----------------------401mobilenumber = Entry(root, width=20, bg="silver", font=(8), fg="black")402mobilenumber.place(x=700, y=260)403
404# gender lable ---------------------------405genderlable = Label(406root, text="GENDER:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"407)408genderlable.place(x=1050, y=240)409
410# genderentery-----------------------411clicker = StringVar()412clicker.set("Select Any One")413gender = OptionMenu(root, clicker, "Male", "Female", "Other")414gender.place(x=1050, y=262)415gender.config(bg="silver", fg="blue")416gender["menu"].config(bg="Yellow")417
418# captca label------------------------419captcalable = Label(420root, text="CAPTCHA:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"421)422captcalable.place(x=1050, y=305)423captcavalue = str(randint(1000, 5000))424captca = Label(425root, text=captcavalue, font=("Rockwell", 20, "bold"), bg="blue", fg="white"426)427captca.place(x=1100, y=335)428
429# captcaentery-----------------------430captcaentry = Entry(root, width=20, bg="silver", font=(8), fg="black")431captcaentry.place(x=1050, y=385)432
433# username label------------------------434usernamelable = Label(435root, text="USERNAME:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"436)437usernamelable.place(x=700, y=300)438
439# usernameentery-----------------------440username = Entry(root, width=20, bg="silver", font=(8), fg="black")441username.place(x=700, y=325)442
443# password label------------------------444passwordlable = Label(445root, text="PASSWORD:", font=("Bahnschrift", 12, "bold"), bg="white", fg="blue"446)447passwordlable.place(x=700, y=363)448
449# passwordentery-----------------------450password = Entry(root, width=20, bg="silver", font=(8), fg="black")451password.place(x=700, y=390)452
453# verify label------------------------454verifylable = Label(455root,456text="VERIFICATION CODE:",457font=("Bahnschrift", 12, "bold"),458bg="white",459fg="blue",460)461verifylable.place(x=700, y=440)462
463# verifyentery-----------------------464verifyy = Entry(root, width=10, bg="silver", font=(8), fg="brown")465verifyy.place(x=860, y=440)466
467# agreement------------------468cb = IntVar()469cb.set(0)470verify = Checkbutton(471root,472variable=cb,473text="Yes, I Agree To All The Terms & Conditions",474font=("Bahnschrift", 12, "bold"),475bg="white",476onvalue=1,477offvalue=0,478)479verify.place(x=700, y=490)480
481signupbutton = Button(482root,483cursor="hand2",484image=registerimage,485command=lambda: signup(486captcavalue,487captcaentry.get(),488firstname.get(),489lastname.get(),490mobilenumber.get(),491username.get(),492password.get(),493clicker.get(),494cb.get(),495verifyy.get(),496),497bd=0,498)499signupbutton.place(x=800, y=540)500
501resetbutton = Button(root, cursor="hand2",502image=resetimage, command=reset, bd=0)503resetbutton.place(x=1050, y=530)504
505exitbutton = Button(root, cursor="hand2",506image=exitimage, command=quitt, bd=0)507exitbutton.place(x=1200, y=595)508
509root.mainloop()510
511
512def login(usernamee, passwordd):513if os.path.isfile("password.dat"):514if len(usernamee) != 0:515if len(passwordd) != 0:516alllogintry(usernamee, passwordd)517F = open("password.dat", "ab")518F.close()519with open("password.dat", "rb") as Myfile:520c = 0521l = 0522while True:523try:524a = pickle.load(Myfile)525if a[0] == usernamee and a[1] == passwordd:526l = l + 1527logindetails(usernamee)528# messagebox.showinfo("Login","Login Successfull.!")529username.delete(0, END)530password.delete(0, END)531mainwindow()532else:533c = c + 1534l = l + 1535
536except EOFError:537break538
539if c == l:540intro = "Username And Password Did Not Matched"541messagebox.showerror("Login", intro)542
543else:544messagebox.showwarning("WARNING", "Please Enter Password.!")545
546else:547messagebox.showwarning("WARNING", "Please Enter UserName.!")548else:549messagebox.showinfo(550"NO PRE-EXISTING DATA",551"No Pre-exesting username And Password Found!.\n\nCreate New profile",552)553
554
555def alllogintry(username, password):556file = open("alllogintry.txt", "a")557entry = 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())566file.write(entry)567file.write("\n")568file.close()569
570
571def logindetails(username):572file = open("logins.txt", "a")573entry = str(574{"Name": str(username), "Date": str(575togetdate()), "time": str(togettime())}576)577# a="Name :--> "+str(username)+" Date :--> "+str(togetdate())+" Time :--> "+str(togettime())578file.write(entry)579file.write("\n")580file.close()581
582
583def quit():584window.destroy()585
586
587def mainwindow():588main = Toplevel()589main.title("Login")590main.geometry("690x750")591
592def quitt():593main.destroy()594
595Label(596main, text="Work In Progress.!!", font=("Bahnschrift", 20, "bold"), bg="white"597).pack()598Button(main, text="Exit", command=quitt).pack()599
600main.mainloop()601
602
603# ------------------------ Add a menu bar -------------------------------
604menu = Menu(window)605window.config(menu=menu)606filemenu = Menu(menu)607menu.add_cascade(label="COMMANDS", menu=filemenu)608filemenu.add_command(label="Quit", command=quit)609
610
611# __main__
612
613"""Images"""
614randomnumber = str(randint(1, 3))615bgimage = PhotoImage(file="images/bg" + randomnumber + ".png")616loginicon = PhotoImage(file="images/loginicon.png")617passicon = PhotoImage(file="images/passicon.png")618loginimage = PhotoImage(file="images/login.png")619registerimage = PhotoImage(file="images/register.png")620resetimage = PhotoImage(file="images/reset.png")621bg = Label(window, image=bgimage)622bg.pack()623
624"""++++++++++++Contents++++++++++++++++"""
625
626
627"""Login contents"""
628loginframe = LabelFrame(bg, text="", bg="white", width=450, height=600, bd=0)629loginframe.place(x=100, y=100)630
631loginlabel = Label(632window,633text="LOGIN HERE",634font=("Rockwell Extra Bold", 23, "bold"),635bg="white",636fg="Red",637)
638loginlabel.place(x=215, y=190)639
640
641"""username contents"""
642vv = Label(window, image=loginicon)643vv.place(x=150, y=305)644
645usernamelable = Label(646window, text="USERNAME:", font=("Bahnschrift", 15, "bold"), bg="white"647)
648usernamelable.place(x=150, y=270)649
650username = Entry(window, width=30, bg="silver", font=(8), fg="blue")651username.place(x=190, y=305)652
653
654"""password contents"""
655vvv = Label(window, image=passicon)656vvv.place(x=150, y=405)657
658passwordlable = Label(659window, text="PASSWORD:", font=("Bahnschrift", 15, "bold"), bg="white"660)
661passwordlable.place(x=150, y=370)662
663password = Entry(window, width=30, bg="silver", font=(8), fg="blue")664password.place(x=190, y=405)665
666"""login button"""
667loginbutton = Button(668window,669image=loginimage,670cursor="hand2",671command=lambda: login(str(username.get()), str(password.get())),672bd=0,673)
674loginbutton.place(x=200, y=478)675
676"""reset button"""
677resetbutton = Button(window, cursor="hand2",678image=resetimage, command=reset, bd=0)679resetbutton.place(x=365, y=472)680
681"""signup contents"""
682registerlable = Label(683window,684text="Are You A New User :",685font=("Bahnschrift", 14),686fg="black",687bg="white",688)
689registerlable.place(x=190, y=600)690
691signupbutton = Button(window, cursor="hand2",692image=registerimage, command=signup, bd=0)693signupbutton.place(x=380, y=595)694
695
696window.mainloop()697