Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #coding: utf-8
- from tkinter import *
- from tkinter import messagebox
- import pickle
- import os
- root = Tk()
- root.geometry("300x250")
- root.title("Вход/регистрация")
- def log(): #Регистрация
- global e2
- global e3
- global b2
- global e
- global reg
- t = Label(root, text = "Зарегистрируйтесь для входа", font="Arial 16")
- t.grid(row =0, column=0, columnspan=3)
- t1 = Label(root, text = "*Логин:", font="Arial 10")
- t1.grid(row=2, column=0, sticky="w")
- e = Entry(root)
- e.focus_set()
- e.grid(row=2, column=1, sticky="w")
- t2 = Label(root, text = "*Пароль:", font="Arial 10")
- t2.grid(row=3, column=0, sticky="w")
- e2 = Entry(show="*")
- e2.grid(row=3, column=1, sticky="w")
- t3 = Label(root, text = "*Повторите пароль:", font="Arial 10")
- t3.grid(row=4, column=0, sticky="w")
- e3 = Entry(show="*")
- e3.grid(row=4, column=1, sticky="w")
- reg = Button(root, text="Зарегистрироваться", overrelief="sunken", command = lambda: check())
- reg.grid(row=5, column=0)
- b2 = Button(root, text="Показать пароль", command = lambda: offe(), overrelief="sunken")
- b2.grid(row=5, column=1, sticky="w")
- def offe(): #Показать пароль
- e2.config(show="")
- e3.config(show="")
- b2.config(command = lambda: offe2(), text="Показать пароль")
- def offe2(): #Скрыть пароль
- e2.config(show="*")
- e3.config(show="*")
- b2.config(command = lambda: offe(), text = "Скрыть пароль")
- def check(): #Проверка логина и пароля
- easypas=['qwerty1234','qwerty1234', 'qwerty12345', '123456', '1234567', '12345678', '123456789', '1234567890', '0123456789', 'qwerty12', 'qwerty123']
- easypas=str(easypas)
- if(e.get() == "" or e3.get() == "" or e2.get() == ""):
- messagebox.showwarning("Ошибка", "Вы должны заполнить все пустые поля.")
- if e.get() == "" and e2.get() == "" and e3.get() == "":
- e.config(bg="orange")
- e2.config(bg="orange")
- e3.config(bg="orange")
- elif e.get() == "" and e2.get() == "":
- e.config(bg="orange")
- e2.config(bg="orange")
- e3.config(bg="white")
- elif e.get() == "" and e3.get() == "":
- e.config(bg="orange")
- e3.config(bg="orange")
- e2.config(bg="white")
- elif e.get() == "":
- e.config(bg="orange")
- e2.config(bg="white")
- e3.config(bg="white")
- elif e2.get() == "" and e3.get() == "":
- e2.config(bg="orange")
- e3.config(bg="orange")
- e.config(bg="white")
- elif e2.get() == "" and e.get() == "":
- e2.config(bg="orange")
- e.config(bg="orange")
- e3.config(bg="white")
- elif e2.get() == "":
- e2.config(bg="orange")
- e.config(bg="white")
- e3.config(bg="white")
- elif e3.get() == "" and e.get() == "":
- e3.config(bg="orange")
- e.config(bg="orange")
- e2.config(bg="white")
- elif e3.get() == "" and e2.get() == "":
- e2.config(bg="orange")
- e3.config(bg="orange")
- e.config(bg="")
- elif e3.get() == "":
- e3.config(bg="orange")
- e2.config(bg="white")
- e.config(bg="white")
- elif(len(e.get()) < 4):
- e.config(bg="orange")
- messagebox.showwarning("Внимание", "Логин должен состоять минимум\n из 4 символов.")
- elif(len(e2.get()) < 6 and len(e3.get()) < 6):
- e.config(bg="#32CD32")
- e2.config(bg="orange")
- e3.config(bg="orange")
- messagebox.showwarning("Внимание", "Пароль должен состоять минимум\n из 6 символов.")
- elif(e2.get() in easypas and e3.get() in easypas):
- messagebox.showwarning("Внимание", "Слишком лёгкий пароль.")
- e.config(bg="#32CD32")
- e2.config(bg="orange")
- e3.config(bg="orange")
- else:
- if e3.get() == e2.get():
- reg.config(state=DISABLED)
- b2.config(state=DISABLED)
- e.config(state=DISABLED, disabledbackground="#32CD32", disabledforeground="black")
- e3.config(state=DISABLED, disabledbackground="#32CD32", disabledforeground="black", show="*")
- e2.config(state=DISABLED, disabledbackground="#32CD32", disabledforeground="black", show="*")
- messagebox.showinfo("Информация", "Запомните ваш логин и пароль!\nЛогин: " + e.get() + "\nПароль: " + e3.get())
- global save
- save()
- else:
- e3.config(state=NORMAL)
- e.config(bg="white")
- e2.config(state=NORMAL)
- e3.config(background="red")
- e2.config(background="red")
- messagebox.showerror("Ошибка", "Пароли не совпадают!")
- def save(): #Проверка на наличие файла
- if os.path.exists("logins.txt"):
- save2()
- else:
- messagebox.showinfo("Информация", "Не найден файл logins.txt\nСоздание..")
- file = open("logins.txt", "wb")
- file.close()
- save2()
- def save2(): #Запись логина и пароля
- sev_pass = e3.get()
- sev_login = e.get()
- file = open('logins.txt', "ab")
- pickle.dump(sev_pass, file)
- pickle.dump(sev_login, file)
- file.close()
- password()
- def password (): #Вход
- global sev_pass
- global sev_login
- file = open("logins.txt", "rb")
- sev_pass = pickle.load(file)
- sev_login = pickle.load(file)
- file.close()
- t1 = Label(root, text = "Вход в систему", font="Arial 16")
- t1.grid(row=6,column=0, columnspan=3)
- global reg1
- global b2
- global e1
- global e21
- global b21
- t11 = Label(root, text = "Логин:", font="Arial 10")
- t11.grid(row=7,column=0, sticky="w")
- e1 = Entry()
- e1.grid(row=7,column=1, sticky="w")
- e1.focus_set()
- t21 = Label(root, text = "Пароль:", font="Arial 10")
- t21.grid(row=8, column=0, sticky="w")
- e21 = Entry(show="*")
- e21.grid(row=8, column=1, sticky="w")
- reg1 = Button(root, text="Авторизация", overrelief="sunken", command = lambda: check2())
- reg1.grid(row=9, column=0)
- b21 = Button(root, text="Показать пароль", command = lambda: offe1(), overrelief="sunken")
- b21.grid(row=9, column=1, sticky="w")
- def offe1(): #Показать/скрыть пароль
- e21.config(show="")
- b21.config(command = lambda: offe21(), text="Показать пароль")
- def offe21():
- e21.config(show="*")
- b21.config(command = lambda: offe1(), text = "Скрыть пароль")
- def check2():#Проверить лооин и пароль
- if e1.get()== "" or e21.get() == "":
- messagebox.showwarning("Ошибка", "Вы должны заполнить все пустые поля.")
- if e1.get()=="" and e21.get()== "":
- e1.config(bg="orange")
- e21.config(bg="orange")
- elif e1.get()=="":
- e1.config(bg="orange")
- e21.config(bg="white")
- elif e21.get()=="":
- e21.config(bg="orange")
- e1.config(bg="white")
- else:
- if sev_pass == e21.get() and sev_login == e1.get():
- success = Label(text = "Вы успешно вошли в аккаунт", fg ="green")
- success.grid(row=10, columnspan=3)
- messagebox.showinfo("Успешно", "Вы вошли в аккаунт.")
- e1.config(state=DISABLED, disabledbackground="#32CD32", disabledforeground="black")
- e21.config(state=DISABLED, disabledbackground="#32CD32", disabledforeground="black")
- reg1.config(state=DISABLED)
- b21.config(state=DISABLED)
- elif sev_pass != e21.get():
- messagebox.showerror("Ошибка", "Неверный пароль!")
- e1.config(background="red")
- e21.config(background="red")
- elif sev_login != e1.get():
- messagebox.showerror("Ошибка", "Неверный логин!")
- e1.config(background="red")
- log()
- root.mainloop()
Add Comment
Please, Sign In to add comment