-2
因此,我正在做一個基本的臨時登錄驗證的事情,只有一個基本的文本文件「假裝」,什麼應該返回真正的不是。用戶名檢查有效但沒有密碼檢查比較等於字符串返回False?
@staticmethod
def validate_login(filename,username,password):
file = open(filename,'r')
file.readline()
for line in file:
i = [i for i, char in enumerate(line) if char == '|']
print username == line[i[0] + 2:i[1]-1]
print password == line[i[1] + 2:]
print password
print line[i[1] + 2:]
if username == line[i[0] + 2:i[1]-1] and password == line[i[1] + 2:]:
file.close()
print "Login Successful."
return True
file.close()
print "Failed to login. Invalid username or password."
return False
這是輸出結果。密碼與文本文件完全匹配,但返回false。用戶名返回true.What究竟是什麼問題?這讓我瘋狂。
True <--- username matched correctly returns true
False <---passwords apparently don't match, returns false.
DopeFiend97 <--password
DopeFiend97
您的密碼比較中可能有換行符'\ n'。您需要將其剝離()。任何不使用「split」的理由,例如'u,p = line.strip()。split('|');如果用戶名==你和密碼== p):...' – AChampion
修復它,只好用line.strip() – CabDude