Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 46
1

Авторизация пользователя

03.06.2014, 22:32. Показов 3611. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, Уважаемые Форумчане!
Подскажите, пожалуйста, как правильно сделать форму авторизации.
Есть форма авторизации закинул на форма DBLookupCombobox и DBEdit и кнопку Батонном соединил с БД что делать дальше в нете нече такого небыло найдено что нада прописывать и где
В аксесе создал таблицу под именим Авторизация с поля Код,Пароль,Логин
Есть 2 пользователя Юзер и Админ мне нада также ограничен права доступа каждого пользователя как это реализовать:con fused:
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
procedure TForm21.Button1Click(Sender: TObject);
begin
DataModule1. AdoQuery1.SQL.Clear;
DataModule1. AdoQuery1.SQL.Add('SELECT * FROM Авторизация WHERE Логин = ' + QuotedStr(DBLookupComboBox1.Text));
DataModule1. AdoQuery1.Active := true;
DataModule1. AdoQuery1.ExecSQL;
DataModule1. AdoQuery1.First;
if(DataModule1. AdoQuery1.FieldByName('Пароль').AsS tring = DBLookupComboBox1.Text) then
begin
if(Length(DBLookupComboBox1.Text) = 0) or (Length(DBEdit1.Text) = 0) then
 
ShowMessage('Успешная авторизация!') else
if DBEdit1.Text = DataModule1.AdoQuery1.FieldByName(' Пароль').AsString then
begin
DataModule1.ADOConnection1.Connecti onString := 'Provider=Microsoft.Jet.OLEDB.4.0;D ata Source=db.mdb;Persist Security Info=False;Jet OLEDB:Database Password='+QuotedStr('1111');
DataModule1.ADOConnection1.Connecte d := true;
end
else
ShowMessage('Неверно введен пароль!');
try
begin
DataModule1.ADOQuery1.ExecSQL;
// ShowMessage('Успешная авторизация! ');
end
except
ShowMessage('Ошибка записи!');
end;
 
form21.hide; form1.show;
 
end; end; end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2014, 22:32
Ответы с готовыми решениями:

Авторизация пользователя
В общем, авторизация работает нормально, но хочу сделать так что бы, если пользователь...

Авторизация пользователя
1. Нужно сделать чтоб после авторизации пользователь мог работать только со своими данными из бд...

Авторизация пользователя Delphi
Всем доброго вечера! Добрые люди, подскажите пожалуйста, как создать вот такую форму авторизации?...

Не проходит авторизация пользователя
в программе не осуществляется авторизация пользователя, пишет ошибки:

15
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
03.06.2014, 22:46 2
Посмотри это:
Реализовать авторизацию с использованием базы данных
0
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 46
04.06.2014, 01:17  [ТС] 3
Fil я сделал так уменя форма авторизации 21 но после авторизации мне нада открылась 1 форма
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  DataModule1. AdoQuery1.SQL.Text:='SELECT * FROM Авторизация WHERE ( Пароль= :пароль) and (Логин = :логин)';
  DataModule1. AdoQuery1.Parameters.ParamByName('пароль').Value := DBLookupComboBox1.Text;
  DataModule1. AdoQuery1.Parameters.ParamByName('логин').Value := Edit1.Text;
  DataModule1. AdoQuery1.Open;
  if DataModule1.ADOQuery1.RecordCount > 0 then
  begin
    if DataModule1.ADOQuery1.FieldValues['Администратор']='1111' then
     showmessage('Вход в систему под Администратором выполнен. Вы верно ввели данные')
    else
      showmessage('Вход в систему под Администратором выполнен. Вы верно ввели данные');
     Edit1.Clear;
    Form21.Visible:=false;
    Form1.Visible:=true;
    Form1.Height:=560;
  end else
  begin
    showmessage('Введён неверный логин или пароль');
    //DBLookupComboBox1.Clear;
    Edit1.Clear;
  end;
end;  end.
0
87 / 87 / 65
Регистрация: 22.05.2014
Сообщений: 485
04.06.2014, 01:59 4
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TUserForm.Button1Click(Sender: TObject);
begin
    If (EditLogin.Text<>'') and (EditPassword.Text<>'') then
  begin
  ADOQueryUser.Active:=false;
  ADOQueryUser.Parameters.ParamByName('log').Value := EditLogin.Text;
  ADOQueryUser.Active:=true;
    If ADOQueryUser.RecordCount<>0 then
      begin
        If ADOQueryUser.FieldByName('Пароль').AsString = EditPassword.Text then begin
          login:=LowerCase(EditLogin.Text);
        If ADOQueryUser.FieldByName('Доступ').AsString = 'True' then  Dostup:=true
        else Dostup:=false;
             Close;
        end
    else Showmessage('Пароль не верный!');
     end;
 end
    else ShowMessage('Введите имя пользователя и пароль!');
end;
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
04.06.2014, 09:54 5
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
begin
  DataModule1. AdoQuery1.SQL.Text:='SELECT * FROM Àâòîðèçàöèÿ WHERE ( Ïàðîëü= :ïàðîëü) and (Ëîãèí = :ëîãèí)';
  DataModule1. AdoQuery1.Parameters.ParamByName('ïàðîëü').Value := DBLookupComboBox1.Text;
  DataModule1. AdoQuery1.Parameters.ParamByName('ëîãèí').Value := Edit1.Text;
  DataModule1. AdoQuery1.Open;
  if DataModule1.ADOQuery1.RecordCount > 0 then
  begin
    if DataModule1.ADOQuery1.FieldValues['Àäìèíèñòðàòîð']='1111' then
      showmessage('Âõîä â ñèñòåìó ïîä Àäìèíèñòðàòîðîì âûïîëíåí.')
    else
      showmessage('Âõîä â ñèñòåìó ïîä Ïîëüçîâàòåëåì âûïîëíåí.');
 
   Form21.Hide;
   Form1.Show;
  end else
  begin
    showmessage('Ââåä¸í íåâåðíûé ëîãèí èëè ïàðîëü');
 //DBLookupComboBox1.Clear;
    Edit1.Clear;
  end;
end;
0
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 46
04.06.2014, 12:53  [ТС] 6
FIL при авторизации пишет неверный логин и пароль что не так???
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
04.06.2014, 13:01 7
Цитата Сообщение от niyazbek Посмотреть сообщение
при авторизации пишет неверный логин и пароль
Значит так и есть.
0
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 46
04.06.2014, 13:07  [ТС] 8
FIL вот под этим кодом работает но при воде любого пароля он входит и под любым пользователем как сделать чтоб он сравнивал правилен ли пароль или нет
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
procedure TForm21.Button1Click(Sender: TObject);
begin
  DataModule1. AdoQuery1.SQL.Clear;
  DataModule1. AdoQuery1.SQL.Add('SELECT * FROM Авторизация WHERE Логин= ' + QuotedStr(DBLookupComboBox1.Text));
  DataModule1. AdoQuery1.Active := true;
  DataModule1. AdoQuery1.ExecSQL;
  DataModule1. AdoQuery1.First;
 if(DataModule1. AdoQuery1.FieldByName('Пароль').AsString = DBLookupComboBox1.Text) then
begin
   if(Length(DBLookupComboBox1.Text) = 0) or (Length(Edit1.Text) = 0) then
 
   ShowMessage('Успешная авторизация') else
    if Edit1.Text = DataModule1.AdoQuery1.FieldByName('Пароль').AsString then
     begin
        DataModule1.ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=False;Jet OLEDB:Database Password='+QuotedStr('****');
  DataModule1.ADOConnection1.Connected := true;
     end
  else
     ShowMessage('Успешная авторизация!');
      try
        begin
          DataModule1.ADOQuery1.ExecSQL;
        //  ShowMessage('Óñïåøíàÿ àâòîðèçàöèÿ! ');
        end
        except
          ShowMessage('Веден не верный пароль!');
        end;
 
         form21.hide; form1.show;
 
end;  end;   end.
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
04.06.2014, 18:17 9
Почему у тебя пароль то с DBLookupComboBox1 сравнивается, то с Edit1?
0
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 46
04.06.2014, 18:19  [ТС] 10
как правильно прописать? ОН у меня заходит под любыми цифрами вода в пароль при выборе пользователя что сделать в чем здесь ошибка?
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
04.06.2014, 20:08 11
Правильно - как я в #5 посте написал.
Если не получается, то выложи проект с базой - я гляну.
1
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 46
04.06.2014, 20:28  [ТС] 12
http://freespace.by/download/712b133bdb
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
04.06.2014, 20:33 13
niyazbek, Обновленная Памятка «Как работать в редакторе сообщений», присоедини файл на форум. На ту помойку, куда ты его выложил, можно зайти только с узкого круга провайдеров...
1
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 46
04.06.2014, 20:56  [ТС] 14
прога.rar
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
04.06.2014, 21:30 15
Лучший ответ Сообщение было отмечено niyazbek как решение

Решение

Надо сделать так:
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
procedure TForm21.Button1Click(Sender: TObject);
var
  log: String;
begin
  log := DBLookupComboBox1.Text;
  with AdoQuery1, Parameters do
  begin
    SQL.Text:='SELECT * FROM Àâòîðèçàöèÿ  WHERE ( Ëîãèí= :ëîãèí) and (Ïàðîëü = :ïàðîëü)';
    ParamByName('ëîãèí').Value := log;
    ParamByName('ïàðîëü').Value := Edit1.Text;
    Open;
    if RecordCount > 0 then
    begin
      if FieldValues['Ëîãèí'] = '1111' then
        showmessage('Âõîä â ñèñòåìó ïîä àäìèíèñòðàòîðîì âûïîëíåí.')
      else
        showmessage('Âõîä â ñèñòåìó ïîä ïîëüçîâàòåëåì âûïîëíåí.');
 
      Form21.Hide;
      Form1.Show;
    end else
    begin
      SQL.Text:='SELECT * FROM Àâòîðèçàöèÿ';
      Open;
      Edit1.Clear;
      showmessage('Âåäåí íåâûðíûé ïàðîëü');
    end;
  end;
end;
1
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 46
05.06.2014, 19:51  [ТС] 16
FIl добрывый вечер я передала код хочу сделать видимость окон для каждого юзера но выдает ошибку
Код
 var
  Login:string;
  Dostup:boolean;
 begin
If (DBLookupComboBox1.Text<>'') and (Edit1.Text<>'') then
 begin
 AdoQuery1.Active:=false;
 AdoQuery1.Parameters.ParamByName('Логин').Value:=DBLookupComboBox1.Text;
AdoQuery1.Active:=true;
   If AdoQuery1.RecordCount<>0 then
     begin
      If AdoQuery1.FieldByName('Пароль').AsString=Edit1.Text then
      begin
         login:=LowerCase(DBLookupComboBox1.Text);
         Form1.Show;
         Form21.Hide;
                            If login='Администратор' then
                 begin
                 Form1.Show;
                 Form21.Hide;
                 end;
         end
         else
         ShowMessage('Проверьте пароль!!!');
              If AdoQuery1.FieldByName('Сотрудник').AsString='False' then Dostup:=true
           else Dostup:=false;

if Dostup=false then
begin
Form1.Enabled:=false;
Form2.Enabled:=false;
end
else
begin
Form8.Enabled:=true;
end
     end
          else Showmessage('Проверьте введенные данные!!!');
 end
    else ShowMessage('Введите имя пользователя и пароль!');

  //Login:string;
 // Dostup:boolean;
end;

end.
Добавлено через 15 минут
хочу сделать для админа видимисть все а для сотрудника только 1 форму
0
05.06.2014, 19:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2014, 19:51
Помогаю со студенческими работами здесь

Авторизация пользователя и запоминание ID
Нужно при нажатии на кнопку сверить логин и пароль из EDIT'ов и из БД, если все введено верно, то...

Авторизация с правами пользователя
Как сделать авторизацию с правами пользователя в delphi через access т.е чтоб форма авторизации в...

Авторизация пользователя БД (администратор и гость, каждый со своим паролем)
Помогите сделать защиту на бд нужно с помощью Combobox сделать администратор и гость и чтоб у...

Авторизация пользователя ПК
можно ли с помощью php/html..etc узнать имя пользователя ПК? т.е. это нужно для того чтоб...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru