-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を返します。問題は何ですか?私を狂ってしまう。
True <--- username matched correctly returns true
False <---passwords apparently don't match, returns false.
DopeFiend97 <--password
DopeFiend97
あなたのパスワード比較には改行 '\ n'がある可能性があります。それを 'strip()'する必要があります。 「分割」を使用しない理由は何か。 'u、p = line.strip()。split( '|'); if username == u and password == p):... – AChampion
これは、line.strip()を使用しなければならない問題を修正しました。 – CabDude