Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 23, 2020 15:57:55

ffrr
Зарегистрирован: 2020-10-22
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

так я ж вроде и вывожу их перед строкой 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

Офлайн

#2 Окт. 23, 2020 15:58:48

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 8553
Репутация: +  764  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

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)

Офлайн

#3 Окт. 23, 2020 15:59:10

ffrr
Зарегистрирован: 2020-10-22
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

сорри, я только начинаю на питоне скрипты писать, учусь так сказать с азов))

Офлайн

#4 Окт. 23, 2020 16:01:50

ffrr
Зарегистрирован: 2020-10-22
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

Спасибо огромное, так получилось теперь:

 # ./auth.py 
-------------------------
<<<<<<<<<Welcome>>>>>>>>>
-------------------------
Username:659605758501
(659605758501, 'd399dc6259ca2df564e0b939abc334ffd77e41d8')
659605758501
659605758501
Enter secret password:
Ok

Отредактировано ffrr (Окт. 23, 2020 16:04:17)

Офлайн

#5 Окт. 23, 2020 16:06:38

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 8553
Репутация: +  764  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

ffrr
Спасибо огромное, так получилось теперь:
Я переделал код. У тебя просто неправильный подход. В базе всё правильно, ты вводишь просто не правильно. Ты вводишь имя пользователя, тогда как в базе никаких имён пользователей нет. Поэтому тебе надо сначала транслировать имя пользователя в идентификатор пользователя и только потом сравнивать.



Отредактировано py.user.next (Окт. 23, 2020 16:07:05)

Офлайн

#6 Окт. 23, 2020 16:10:31

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8171
Репутация: +  563  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

ffrr
и при запуске видно, что они равны 659605758501=659605758501:
Да вот не факт. Они одинаково отображаются, это не значит, что они равны. Надо еще типы сравнить.
Сделай
 print(type(dbuser))
print(type(username))



Офлайн

#7 Окт. 23, 2020 16:26:21

ffrr
Зарегистрирован: 2020-10-22
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

да, ты прав, выдает разные типы:

 <class 'int'>
<class 'str'>

Офлайн

#8 Окт. 23, 2020 16:28:00

ffrr
Зарегистрирован: 2020-10-22
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

А как можно ограничить количество попыток ввода пароля, например до 3-х?

Офлайн

#9 Окт. 23, 2020 17:23:11

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8171
Репутация: +  563  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

ffrr
А как можно ограничить количество попыток ввода пароля, например до 3-х?
давайте мы будем плавно прекращать текущую беседу. Во-первых, мы уже очень далеко ушли от первоначальной темы топика. Вопросы у вас не прекращаются. Вероятно, это результат того, что не имея никакого опыта в питоне и в программировании вообще, вы взялись решать слишком сложную для себя задачу. Сначала надо поучиться на более простых задачах.

>как можно ограничить количество попыток ввода пароля, например до 3-х
надо завести переменную счетчик в который сохранять количество неудачных попыток. Это настолько базовая вещь, что о ней неприлично говорить в теме “Базы данных”.



Офлайн

#10 Окт. 23, 2020 18:02:04

ffrr
Зарегистрирован: 2020-10-22
Сообщения: 69
Репутация: +  0  -
Профиль   Отправить e-mail  

Сравнение введенного имени юзера и пароля со значениями в MariaDB

да, действительно пора и честь знать, прекращаем (будем считать мой 10-летний опыт программирования на bash “отсутствием опыта в программировании вообще”)… спасибо за совет с переменной счетчиком.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version