Форум сайта python.su
так я ж вроде и вывожу их перед строкой if username == dbuser:
print(data) print(dbuser) print(username)
# ./auth.py ------------------------- <<<<<<<<<Welcome>>>>>>>>> ------------------------- Username:659605758501 (659605758501, 'd399dc6259ca2df564e0b939abc334ffd77e41d8') 659605758501 659605758501 please try another user name. This user name is incorrect
Офлайн
ffrr(659605758501, '202cb962ac59075b964b07152d234b70')
username = 'john' name_id_dct = { 'john': 659605758501, 'mary': 659605758502, } userid = name_id_dct[username] cursor.execute("SELECT userID, password from db") data = cursor.fetchone() dbuserid, dbpass = data if userid == dbuserid and password == dbpass: print('Ok') else: print('Fail')
Отредактировано py.user.next (Окт. 23, 2020 16:05:19)
Офлайн
сорри, я только начинаю на питоне скрипты писать, учусь так сказать с азов))
Офлайн
Спасибо огромное, так получилось теперь:
# ./auth.py ------------------------- <<<<<<<<<Welcome>>>>>>>>> ------------------------- Username:659605758501 (659605758501, 'd399dc6259ca2df564e0b939abc334ffd77e41d8') 659605758501 659605758501 Enter secret password: Ok
Отредактировано ffrr (Окт. 23, 2020 16:04:17)
Офлайн
ffrrЯ переделал код. У тебя просто неправильный подход. В базе всё правильно, ты вводишь просто не правильно. Ты вводишь имя пользователя, тогда как в базе никаких имён пользователей нет. Поэтому тебе надо сначала транслировать имя пользователя в идентификатор пользователя и только потом сравнивать.
Спасибо огромное, так получилось теперь:
Отредактировано py.user.next (Окт. 23, 2020 16:07:05)
Офлайн
ffrrДа вот не факт. Они одинаково отображаются, это не значит, что они равны. Надо еще типы сравнить.
и при запуске видно, что они равны 659605758501=659605758501:
print(type(dbuser)) print(type(username))
Офлайн
да, ты прав, выдает разные типы:
<class 'int'> <class 'str'>
Офлайн
А как можно ограничить количество попыток ввода пароля, например до 3-х?
Офлайн
ffrrдавайте мы будем плавно прекращать текущую беседу. Во-первых, мы уже очень далеко ушли от первоначальной темы топика. Вопросы у вас не прекращаются. Вероятно, это результат того, что не имея никакого опыта в питоне и в программировании вообще, вы взялись решать слишком сложную для себя задачу. Сначала надо поучиться на более простых задачах.
А как можно ограничить количество попыток ввода пароля, например до 3-х?
Офлайн
да, действительно пора и честь знать, прекращаем (будем считать мой 10-летний опыт программирования на bash “отсутствием опыта в программировании вообще”)… спасибо за совет с переменной счетчиком.
Офлайн