Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
4 / 4 / 1
Регистрация: 06.03.2013
Сообщений: 187

Авторизация через БД

09.11.2016, 21:08. Показов 1231. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток подскажите, как можно реализовать авторизацию юзеров через делфи,
Юзер регистрируется на сайте, его логин и пароль сохраняются в базу данных, в программе он вводит логин и пароль и входит в программу, так же еще необходимы некоторые запросы к базе данных, для проверки HWID
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2016, 21:08
Ответы с готовыми решениями:

Горим! Нужна авторизация через PHP и второй вариант через Cookie
Использование сессий и cookie Ваш сайт состоит из 2-х php-страниц : 1. Страница авторизации. Здесь пользователь вводит имя и пароль,...

Авторизация через программу и продолжение просмотра через браузер
В общем, пишу программу, по нажатию кнопки на форме, проводится авторизация на сайте POST запросом. Авторизация через программу проходит...

Авторизация через БД
добрый день вопрос в программе 2 формы на 1 форме: 2 эдита связываю прогамму с бд аксес в базе таблица LOG с 2 полями user и pass (...

11
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
09.11.2016, 22:10
Для сравнение пароля и имени пользователя используйте этого.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TFormLogin.btnLoginClick(Sender: TObject);
begin
if (Edit1.Text = '') or (Edit2.Text = '') then
 Application.MessageBox('Заполните поля', 'INFORMASI', mb_OK);
with Query1 do
 begin
   Close;
   SQL.Clear;
   SQL.Add('SELECT * FROM admin WHERE username ='+QuotedStr(Edit1.Text));
   Open;
 end;
 if Query1.RecordCount = 0 then
   Application.MessageBox('База пуста.', 'INFORMASI', mb_OK)
 else
   begin
     if Query1.FieldByName('password').AsString <> Edit2.Text then
       Application.MessageBox('Неправильный парол', mb_OK)
     else
           Hide;
           FormUtama.Show;
   end;
end;
Добавлено через 4 минуты
а для соединение с сервером можно так.
Driver={MySQL ODBC 5.1 Driver};
Server=myServerAddress;
Database=myDataBase;
User=myUsername;
Password=myPassword;
Option=3;

Добавлено через 10 минут
здесь подробнее Авторизация на форме через бд
0
10.11.2016, 04:41

Не по теме:

- Для регистрации введите имя...
- "имя"
- ...и пароль
- "пароль"
- В системе уже существует пользователь с такими данными!

0
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
10.11.2016, 10:11
ZfoxAK,
Если не в тем лучше не паниковать
0
5980 / 4555 / 1095
Регистрация: 29.08.2013
Сообщений: 28,183
Записей в блоге: 3
10.11.2016, 10:19
Цитата Сообщение от Khaker_tt Посмотреть сообщение
Query1.FieldByName('password').AsString <> Edit2.Text
ужас
0
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
10.11.2016, 15:24
qwertehok, Не нравится не надо смотреть.

Не по теме:

Не по теме:

Если мне не нравится сериал я не буду смотреть

0
W
 Аватар для kavasaka
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
10.11.2016, 15:32
Цитата Сообщение от matrixkot Посмотреть сообщение
Юзер регистрируется на сайте, его логин и пароль сохраняются в базу данных
А каким компонентом к сайту можно подключиться?
0
0 / 0 / 3
Регистрация: 21.09.2015
Сообщений: 135
10.11.2016, 21:29
Ну как пример, почти тоже самое конечно
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
procedure TForm1.Button1Click(Sender: TObject);
begin
 try
if (Edit1.Text<>'') and (Edit2.Text<>'') then
 begin
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Text:= 'SELECT * '    +
                                    'WHERE username=' + QuotedStr(Edit1.Text);
  ADOQuery1.Active;
  ADOquery1.Open;
 
if ADOQuery1.RecordCount <> 0 then
    begin
 
     if ADOQuery1.FieldByName('password').AsString = LowerCase(Trim(Edit2.Text)) then
         begin
// определение полей
          gULogin:=     ADOQuery1.FieldByName('username').AsString;
          gUId:=        ADOQuery1.FieldByName('id').AsInteger;
          gULastVisit:= ADOQuery1.FieldByName('last_visited').AsDateTime;
          imagePath:=   ExtractFilePath(Application.ExeName) + ASSETS_FOLDER +'images\';
// вывод изображения
       if FileExists(imagePath + IMG_PATH_PREFICS + gULogin + gUImageExt) then
         try 
            Form2.iCurrentImage.Picture.LoadFromFile(imagePath + IMG_PATH_PREFICS + gULogin + gUImageExt);
         except 
            Form2.iCurrentImage.Picture:= Form2.iNoImageLoad.Picture;
         End
  else begin 
        Form2.iNoImage.Visible:= True;
        Form2.iCurrentImage.Picture:= Form2.iNoImage.Picture;
       end;
      end
         else  
            begin
            Label3.Visible:= True; 
            Label3.Caption:= ERROR_WRONG_PASSWORD; // не правильный пароль
            end;
     end
         else
            begin 
            Label3.Visible:= True;
            Label3.Caption:= ERROR_USER_NOT_FOUND; // нет такого юзера
            end;
     end else
            begin 
            Label3.Visible:= True; 
            Label3.Caption:= ERROR_FIELDS_IS_EMPTY; // не все поля заполнены
            end;
 except on E: Exception do
   begin  
    Application.MessageBox('Что-то пошло не так', 'Инфа %сотка%', MB_OK);
    exit;
   end;
          end;
   end;
0
5980 / 4555 / 1095
Регистрация: 29.08.2013
Сообщений: 28,183
Записей в блоге: 3
10.11.2016, 23:09
Цитата Сообщение от ZikWall Посмотреть сообщение
if (Edit1.Text<>'') and (Edit2.Text<>'') then
это логин\пароль?
а если я выставлю 2 пробела в пароле?

Цитата Сообщение от ZikWall Посмотреть сообщение
ADOQuery1.SQL.Clear;
это не обязательно делать, ведь дальше у вас идет прямое присваивание

Цитата Сообщение от ZikWall Посмотреть сообщение
ADOQuery1.Active;
ADOquery1.Open;
выбрали бы что-то одно

Цитата Сообщение от ZikWall Посмотреть сообщение
if ADOQuery1.RecordCount <> 0 then
а если вернется 0?
0
0 / 0 / 3
Регистрация: 21.09.2015
Сообщений: 135
10.11.2016, 23:16
qwertehok, если вернётся 0, то выведется сообщение, что пользователя не сущестесть
Пробелы ещё не вводил) а разве пробел не считается за символ? Можно как дополнение использовать trim, ну если придераться, то пример не идеален, но скелет есть
0
11.11.2016, 04:18

Не по теме:

Цитата Сообщение от Khaker_tt Посмотреть сообщение
Если не в тем лучше не паниковать
Не говорите, что мне делать и я не скажу куда вам идти.

0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
13.11.2016, 18:43

Не по теме:

qwertehok, на мой взгляд пароль из трёх пробелов - это свежо, неожиданно и даже слегка задорно.



По делу: задавайте сразу логин и пароль, и если isEmpty - то отбой, иначе - авторизация успешна. Имхо, оптимально с точки зрения трудозатрат и вычислений.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.11.2016, 18:43
Помогаю со студенческими работами здесь

Авторизация через бд
Здравствуйте. У меня есть авторизация через БД, рабочая, но из-за кода(скорее всего) у меня не корректно отображается форма DBGrid....

Авторизация через вк
Как реализовать авторизацию на сайте через вк по нажатию на кнопку (на PHP)

Авторизация через БД
Есть 2 формы. На первой есть кнопка &quot;Администратор&quot;, которая открывает вторую форму. Хочу сделать, чтобы при нажатии на кнопку...

Авторизация через ВК
Как реализовать авторизацию на сайте через вк по нажатию на кнопку (на PHP)

Авторизация через вк
Добрый день, Я совсем новичок, и хотелось бы помощи! Никак не получается установить этот Виджет для авторизации. Пытался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru