Я делаю программу, в которой мне нужно выполнить системный вход в систему, сохраненный в базе данных.
Программа не сохраняет и не проверяет пользователей в базе данных. Может ли кто-нибудь помочь мне понять, где я ошибся?
Я все еще начинающий программист.
Большое спасибо!
def login():
global screen1
screen1 = Toplevel(screen)
screen1.title("Login!")
screen1.geometry("300x250")
global username
global password
global username_entry
global password_entry
username = StringVar()
password = StringVar()
Label(screen1, text = "Ensira os seus dados nos campos abaixo!").pack()
Label(screen1, text = "").pack()
Label(screen1, text = "Utilizador * ").pack()
username_entry = Entry(screen1, textvariable = username)
username_entry.pack()
Label(screen1, text = "Password * ").pack()
password_entry = Entry(screen1, textvariable = password)
password_entry.pack()
Label(screen1, text = "").pack()
Button(screen1, text = "Entrar.", width = 10, height = 1, command = VerificarLogin).pack()
#Função para receber a password e criptografa-la para comparar
def VerificarLogin():
password = password_entry.get()
encodedBytes = base64.b64encode(password.encode("utf-8"))
passEncry = str(encodedBytes, "utf-8")
cursor.execute("UPDATE user SET Online = '0' WHERE nome = 'admin' ")
ConnectBD.connection.commit()
cursor.execute("UPDATE user SET Online = '0' WHERE nome = 'Angelo' ")
ConnectBD.connection.commit()
cursor.execute("UPDATE user SET Online = '0' WHERE nome = 'Henrique' ")
ConnectBD.connection.commit()
if password.get() == "admin" and passEncry == username[0][2]:
cursor.execute("UPDATE user SET Online = '1' WHERE nome = 'admin' ")
ConnectBD.connection.commit()
for x in range(len(username)):
if password.get() == username[x][1] and passEncry == username[x][2]:
cursor.execute("UPDATE user SET Online = '1' WHERE nome = '%s' "%(username[x][1]) )
ConnectBD.connection.commit()