Найти - Пользователи
Полная версия: Сравнение введенного имени юзера и пароля со значениями в MariaDB
Начало » Базы данных » Сравнение введенного имени юзера и пароля со значениями в MariaDB
1 2 3
ffrr
так я ж вроде и вывожу их перед строкой if username == dbuser:
 print(data)
print(dbuser)
print(username)

и при запуске видно, что они равны 659605758501=659605758501:
 # ./auth.py 
-------------------------
<<<<<<<<<Welcome>>>>>>>>>
-------------------------
Username:659605758501
(659605758501, 'd399dc6259ca2df564e0b939abc334ffd77e41d8')
659605758501
659605758501
please try another user name. This user name is incorrect
py.user.next
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')
ffrr
сорри, я только начинаю на питоне скрипты писать, учусь так сказать с азов))
ffrr
Спасибо огромное, так получилось теперь:
 # ./auth.py 
-------------------------
<<<<<<<<<Welcome>>>>>>>>>
-------------------------
Username:659605758501
(659605758501, 'd399dc6259ca2df564e0b939abc334ffd77e41d8')
659605758501
659605758501
Enter secret password:
Ok
py.user.next
ffrr
Спасибо огромное, так получилось теперь:
Я переделал код. У тебя просто неправильный подход. В базе всё правильно, ты вводишь просто не правильно. Ты вводишь имя пользователя, тогда как в базе никаких имён пользователей нет. Поэтому тебе надо сначала транслировать имя пользователя в идентификатор пользователя и только потом сравнивать.
FishHook
ffrr
и при запуске видно, что они равны 659605758501=659605758501:
Да вот не факт. Они одинаково отображаются, это не значит, что они равны. Надо еще типы сравнить.
Сделай
 print(type(dbuser))
print(type(username))
ffrr
да, ты прав, выдает разные типы:
 <class 'int'>
<class 'str'>
ffrr
А как можно ограничить количество попыток ввода пароля, например до 3-х?
FishHook
ffrr
А как можно ограничить количество попыток ввода пароля, например до 3-х?
давайте мы будем плавно прекращать текущую беседу. Во-первых, мы уже очень далеко ушли от первоначальной темы топика. Вопросы у вас не прекращаются. Вероятно, это результат того, что не имея никакого опыта в питоне и в программировании вообще, вы взялись решать слишком сложную для себя задачу. Сначала надо поучиться на более простых задачах.

>как можно ограничить количество попыток ввода пароля, например до 3-х
надо завести переменную счетчик в который сохранять количество неудачных попыток. Это настолько базовая вещь, что о ней неприлично говорить в теме “Базы данных”.
ffrr
да, действительно пора и честь знать, прекращаем (будем считать мой 10-летний опыт программирования на bash “отсутствием опыта в программировании вообще”)… спасибо за совет с переменной счетчиком.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB