我正在尝试在表格中搜索用户名,然后找到用户密码并根据输入检查它到目前为止我有...
def check():
username = logEntry.get()
password = passEntry.get()
curs.execute("SELECT * FROM logins WHERE username = VALUES (?);", (username))
userExists = curs.fetchone()
if userExists:
curs.execute("SELECT * FROM logins WHERE password = VALUES (?);",(password))
passExists = curs.fetchone()
if passExists:
controller.show_frame(look)
else:
errorLabel.place(x=0, y=0)
logButton = tk.Button(self, text="Login", command=check)
logButton.place(x=320, y=120)
regButton = tk.Button(self, text="Registration For New Users",
command=lambda: controller.show_frame(Register))
regButton.place(x=110, y=120)
非常感谢任何帮助或建议:)
更新:我现在遇到一个错误,说列用户名不存在,这是我到目前为止所遇到的问题。 @安蒂-哈帕拉
def check():
username = logEntry.get()
password = passEntry.get()
cursor.execute("SELECT username, password" "FROM logins WHERE username = ?",(username))
resultrow = cursor.fetchone()
if resultrow is not None:
db_username, db_password = resultrow
if username == db_username and password == db_password:
controller.show_frame(look)
答案 0 :(得分:2)
您的代码有问题。即使这确实是一个Tkinter程序,并且密码检查没有真正添加到任何安全性,应注意以下所有读者可能不知道您的代码中的含义:
这种程序首先存在具有给定用户名的任何用户,然后它会检查是否存在具有给定密码的任何用户,这些不一定是一样的。如果您在制作中使用此类代码,我可以通过将不相关的用户帐户密码更改为a
并使用admin
a
登录来进入管理员帐户。< / p>
请尝试这样的操作,以确保您检查的密码属于您正在检查的用户:
results = cursor.execute("SELECT username, password "
"FROM logins WHERE username = ?", (username,))
resultrow = cursor.fetchone()
if resultrow is not None:
db_user, db_password = resultrow
if username == db_user and password == db_password:
controller.show_frame(look)