HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 05.02.2021, 20:13
underpl1g
Познающий
Регистрация: 08.09.2020
Сообщений: 83
С нами: 2989121

Репутация: 13
По умолчанию

Как проверять совпадает ли логин и пароль с тем, что указан в базе данных?

Если нет, то *мое действие*
 
Ответить с цитированием

  #2  
Старый 05.02.2021, 20:19
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Цитата:
Сообщение от underpl1g  

пароль
ты имел ввиду хеш пароля?
 
Ответить с цитированием

  #3  
Старый 05.02.2021, 20:20
underpl1g
Познающий
Регистрация: 08.09.2020
Сообщений: 83
С нами: 2989121

Репутация: 13
По умолчанию

Цитата:
Сообщение от Tema05  

ты имел ввиду хеш пароля?
для начала именно пароль и логин, без зашифровок
 
Ответить с цитированием

  #4  
Старый 06.02.2021, 22:46
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Цитата:
Сообщение от underpl1g  

для начала именно пароль и логин, без зашифровок
Давай так. Сразу эту идею мы отбрасываем и забываем про неё. Сравнивай исключительно ХЕШ пароля. Второй вопрос. Ты делаешь подключение к БД сразу в своей программе или используешь прослойку какую-то? Прослойка в данном случае - это ты передаешь данные куда-то на сервер и он уже там ответ делает запрос к БД и тебе только отдает ответ от БД.
 
Ответить с цитированием

  #5  
Старый 07.02.2021, 22:12
Vintik
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами: 4598023

Репутация: 183


По умолчанию

Цитата:
Сообщение от Dark_Knight  

Давай так. Сразу эту идею мы отбрасываем и забываем про неё. Сравнивай исключительно ХЕШ пароля. Второй вопрос. Ты делаешь подключение к БД сразу в своей программе или используешь прослойку какую-то? Прослойка в данном случае - это ты передаешь данные куда-то на сервер и он уже там ответ делает запрос к БД и тебе только отдает ответ от БД.
Человек задал конкретный вопрос, зачем его учить? Он вроде бы советов не просил.

PHP:





Код:
$mysqli
=
mysqli_connect
(
$mysql_host
,
$mysql_user
,
$mysql_password
,
$mysql_database
)
;
mysqli_query
(
$mysqli
,
"SET NAMES 'utf8'"
)
;
$mysqli_query
=
mysqli_query
(
$mysqli
,
"SELECT id FROM users WHERE login = '$login' AND passwd = '$passwd'"
)
;
# делает запрос по введенному логину и паролю
$count
=
mysqli_num_rows
(
$mysqli_query
)
;
# получает количество результатов
if
(
$count
==
0
)
# сравнивает с нулём
$result
=
false
;
# если ноль - значит такого аккаунта нету
mysqli_close
(
$mysqli
)
;


Простая реализация на PHP. Думаю, с C++ разберешься.
 
Ответить с цитированием

  #6  
Старый 07.02.2021, 23:11
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

@Vintik

1. Мы его не учим. Мы эму даем советы, чтобы у него случайно в будущем не спиздили БД и он не плакала, что мы тут эму плохого посоветовали потому я испросил где это он хочет использовать. Вдруг эму чисто для практики надо на локалке сделать.

2. Где экранирование строк в запросе?

3. Использовать переменные напрямую в запросе - плохая практика. Даже для примера,

4. Где PDO?

5. Строки 5 и 6 можно записать ввиде одной строк и сразу убить проблему с необъявленной переменной. Вот тебе пример твоего кода, если значение будет один. https://ideone.com/JjYkzG
 
Ответить с цитированием

  #7  
Старый 07.02.2021, 23:23
Vintik
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами: 4598023

Репутация: 183


По умолчанию

Цитата:
Сообщение от Dark_Knight  

@Vintik
1. Мы его не учим. Мы эму даем советы, чтобы у него случайно в будущем не спиздили БД и он не плакала, что мы тут эму плохого посоветовали потому я испросил где это он хочет использовать. Вдруг эму чисто для практики надо на локалке сделать.
2. Где экранирование строк в запросе?
3. Использовать переменные напрямую в запросе - плохая практика. Даже для примера,
4. Где PDO?
5. Строки 5 и 6 можно записать ввиде одной строк и сразу убить проблему с необъявленной переменной. Вот тебе пример твоего кода, если значение будет один. https://ideone.com/JjYkzG
1. Согласен, был неправ.

2. Зачем? Так работает.

3. Не знал.

4. Зачем?)

5. Переменная объявлена строкой выше. Тут согласен, можно так, как ты посоветовал.
 
Ответить с цитированием

  #8  
Старый 07.02.2021, 23:25
#Northn
Флудер
Регистрация: 10.08.2017
Сообщений: 2,659
С нами: 4609424

Репутация: 183


По умолчанию

Цитата:
Сообщение от Vintik  

2. Зачем? Так работает.
Чтобы не было sql инъекций
 
Ответить с цитированием

  #9  
Старый 07.02.2021, 23:26
Vintik
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами: 4598023

Репутация: 183


По умолчанию

Цитата:
Сообщение от #Northn  

Чтобы не было sql инъекций
Ну тогда я совсем лох, потому что не слышал о таком. Покажи как это работает, как от этого защититься и где про это почитать. Плиз.
 
Ответить с цитированием

  #10  
Старый 07.02.2021, 23:30
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Цитата:
Сообщение от Vintik  

Человек задал конкретный вопрос, зачем его учить? Он вроде бы советов не просил.

PHP:





Код:
$mysqli
=
mysqli_connect
(
$mysql_host
,
$mysql_user
,
$mysql_password
,
$mysql_database
)
;
mysqli_query
(
$mysqli
,
"SET NAMES 'utf8'"
)
;
$mysqli_query
=
mysqli_query
(
$mysqli
,
"SELECT id FROM users WHERE login = '$login' AND passwd = '$passwd'"
)
;
# делает запрос по введенному логину и паролю
$count
=
mysqli_num_rows
(
$mysqli_query
)
;
# получает количество результатов
if
(
$count
==
0
)
# сравнивает с нулём
$result
=
false
;
# если ноль - значит такого аккаунта нету
mysqli_close
(
$mysqli
)
;


Простая реализация на PHP. Думаю, с C++ разберешься.
sql injection:

 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.