2013-02-13 4 views
1
def btnClick(self): 
    filereader = open("Login.txt", 'r+') 
    dataload = filereader.readlines() 
    UN=self.entr1.get() 
    PW=self.entr2.get() 
    for line in dataload: 
     (username,password) = line.split('|') 
     UN2 = username 
     PW2 = password 
     if (UN==UN2) & (PW==PW2): 
      tkMessageBox.showinfo("Success", "Successfully login!") 
      self.main() 
     else: 
      tkMessageBox.showinfo("Error", "Incorrect login credentials!") 
      self.clear() 
    filereader.close() 
    return 

사용자가 데이터베이스로 로그인 버튼, 임 사용하여 메모장을 클릭하고이Tkinter의 로그인

사용자 내부의 데이터 때 나는 코드 이벤트에 대한보다가 | 1234
관리자 | 1234

내 코드가 맞다고 생각하지만 실행하면 올바른 데이터를 입력해도 항상 잘못된 것으로 표시됩니다. 내 실수를 식별하도록 도와 주시겠습니까?

답변

2

간단한 print 문을 사용하여 파일에서 읽은 값을 출력하고 실제로 입력 한 값과 비교할 수 있어야합니다. .readlines() 이후


는 항상 \n 문자로 끝나는 파일에서 읽은 행 구분, 라인/암호를 제거하지 않습니다.

제거해야합니다.

(username,password) = line.replace('\n', '').split('|') 

또는

filereader.read().splitlines() 

대신 filereader.readlines()

사용하는 간단한 방법은 replace('\n', '') 또는 rstrip('\n')를 호출하는 것입니다