微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何创建一个可以验证用户输入有效用户名和密码的登录系统?

如何解决如何创建一个可以验证用户输入有效用户名和密码的登录系统?

我试图创建一个登录系统,该系统可以检查用户名和密码是否包含在用户列表中(我用它来存储不同的用户密码及其名称)。

userlist = []
def userpage():
     print("user page accessed")
     opt = int(input("Enter '0' to log out"))
     if opt == 0:
          mainpage()

def signin():
     username = input("Please enter username: ")
     for user in userlist:
          if username in user:
               password = input("Please enter password: ")
               if password in user:
                    userpage()
               else:
                    print("Incorrect password")
                    mainpage()
          else:
               print("Unregister username")
               mainpage()

def signup():
     username = input("Please enter username: ")
     password = input("Please enter password: ")
     userlist.append([username,password])
     print(userlist)
     userpage()

def mainpage():
     opt = int(input("Enter '0' to sign up,'1' to sign in: "))
     if opt == 0:
          signup()
     elif opt == 1:
          signin()
mainpage()

请注意,我使用 print(userlist) 检查用户名和密码是否存储在列表中。注册功能有效(正如我从打印(用户列表)中看到的那样,但登录功能存在问题(我想用它来检查有效的用户名和密码)。因为用户注册后将立即访问用户页面,登录功能在第一个用户注册退出后重新登录时起作用。用户列表有他们的用户名

解决方法

您的问题是,如果第一个凭据数组不匹配,您会立即引发错误。它检查第一个用户密码对,然后如果它不匹配,则会引发错误。所以你的代码应该是:

def signin():
     username = input("Please enter username: ")
     for c,user in enumerate(userlist):
          if username in user:
               password = input("Please enter password: ")
               if password in user:
                    userpage()
               else:
                    print("Incorrect password")
                    mainpage() 
          else:
               if c != len(userlist):
                    pass                    
               else:
                    print("Unregistered username")
                    mainpage()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。