2017-03-16 45 views
0

在这个登录表单中只能使用相同的'用户名'和'密码'!我希望它的工作,如果任何'用户名'从'密码'列表获得匹配str,那么它也必须工作..帮助.. !!!登录表单无法使用! python

 self.usernamelist = ['aniruddh','firoz','ashish'] 
     self.passwordlist = ['aniruddh','firoz','ashish'] 

     self.connect(self.okbutton, SIGNAL("clicked()"),self.loginfunction) 


    def loginfunction(self): 
     usernamestatus = False 
     usernameindex = -1 
     passwordstatus = False 
     passwordindex = -1 
     for currentusername in range(len(self.usernamelist)): 
      if self.passwordlist[currentusername] == self.username.text(): 
       usernamestatus = True 
       usernameindex = self.usernamelist.index(self.passwordlist[currentusername]) 

     for currentpassword in range(len(self.passwordlist)): 
      if self.usernamelist[currentpassword] == self.password.text(): 
       passwordstatus = True 
       passwordindex = self.passwordlist.index(self.usernamelist[currentpassword]) 

     if usernamestatus == True and passwordstatus ==True and usernameindex: #== passwordindex: 
      self.hide() 
      w2 = chooseoption.Form1(self) 
      w2.show() 


     else: 

         self.msgBox = QMessageBox() 
         self.msgBox.setWindowTitle("Alert!") 
         self.msgBox.setWindowIcon(QtGui.QIcon('abcd.ico')) 
         self.msgBox.setText("Unauthorised User!!!") 
      self.msgBox.exec_() 

回答

0

的问题是,当你正在检查的密码,你正在检查密码是否在usernamelist!你需要做的是:
1-检查用户名是否存在于列表中。
2-检查密码是否对该用户名有效,在您的情况下,passwordlist中的index [i]上的密码对usernamelist中同一索引上的用户名有效。

所以登录功能可能是这样的:

def loginfunction(self): 
    usernameindex = -1 
    passwordindex = -1 
    username = self.username.text() 
    password = self.password.text() 
    if username in self.usernamelist: # 1- check: if the username is in the list 
     usernameindex = self.usernamelist.index(username) # then: get the index of the username 
     if password == self.passwordlist[usernameindex]: # 2- check: if password is equal to the password in passwordlist on the same index of the username 
      self.hide() 
      w2 = chooseoption.Form1(self) 
      w2.show() 
     else: # if the password is not correct 
      self.msgBox = QMessageBox() 
      self.msgBox.setWindowTitle("Alert!") 
      self.msgBox.setWindowIcon(QtGui.QIcon('abcd.ico')) 
      self.msgBox.setText("Incorrect password!!!") 

    else: # the username is not in the list 
     self.msgBox = QMessageBox() 
     self.msgBox.setWindowTitle("Alert!") 
     self.msgBox.setWindowIcon(QtGui.QIcon('abcd.ico')) 
     self.msgBox.setText("Unauthorised User!!!") 
+0

的太感谢你了! –