Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Авторизация


ivkinai76 ©   (2013-02-20 22:03:00) 

База данных сделана в MS ACCESS.
Оболочка под нее в Дельфи.
При запуске происходит запрос на авторизацию. Выбирается режим входа в систему и в зависимости от этого-либо пользовательский режим или администратора. В пользовательском только просмотр.

Код программы:
procedure TForm1.Button1Click(Sender: TObject);
var
log,pass:string[20];
begin
log:=ComboBox1.Text;
pass:=Edit2.Text;
with Form1.ADOQuery1 do begin
close;
SQL.Clear;
SQL.Add('Select *');
SQL.Add('FROM users');
SQL.Add('WHERE ((log='''+log+''') AND (pass='''+pass+'''))');
Open;
end;
if ADOQuery1.RecordCount<>0 then
begin
if ADOQuery1.FieldByName('log').AsString = 'admin' then
 Form2.Show
else if ADOQuery1.FieldByName('log').AsString = 'user' then
 Form3.Show;
end
else begin
ShowMessage('Неправильно введено имя пользователя или пароль');
ComboBox1.Text:='';
Edit2.Text:='';
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
ComboBox1.Items.Clear;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select log from users');
ADOQuery1.Open;
ADOQuery1.First;
for  i := 0 to ADOQuery1.RecordCount - 1 do
begin
ComboBox1.Items.Add(ADOQuery1.FieldByName('log').AsString);
ADOQuery1.Next;
end;
ADOQuery1.Close;

end;

end.

Может немного коряво. Но прошу заранее извинить-только учусь программировать.
Вопрос такой. Даже два.
1. Как сделать, чтобы при вводе правильного логина и пароля-окно авторизации закрывалось и оставалось только форма с базой данных.
2. Как сделать, чтобы вместо вводимого пароля высвечивались звездочки.


Slym   (2013-02-22 08:09:00) [1]

http://www.programmersforum.ru/showthread.php?t=228422

я бы в users завел бульеновое поле Admin

и будет
if ADOQuery1.FieldByName('Admin').AsBo olean then

и кстати универсальный пароль будет ")) or((""="
подумай сам почему
это называется SQLInject и фиксится использованием параметров


O'ShinW   (2013-02-21 09:57:00) [2]

Чего зачем?

> а затемзакрыть первую = завершить работу приложения



> ты мне показываешь как надо?

автору


Медвежонок Пятачок   (2013-02-21 09:56:00) [3]

>зачем?

Чего зачем?

Или ты мне показываешь как надо?


O'ShinW   (2013-02-21 09:24:00) [4]

>> Медвежонок Пятачок ©   (20.02.13 22:15) [2]
зачем?

program Project1;

uses
 Forms,
 Unit1 in 'Unit1.pas' {frmLogin},
 Unit2 in 'Unit2.pas' {frmWork};

{$R *.res}

var
 frmLogin: TfrmLogin;
begin
 frmLogin := TfrmLogin.Create(nil);
 if frmLogin.ShowModal <> 1 then
  Exit;

 Application.Initialize;
 //Application.CreateForm(TfrmLogin, frmLogin);
 Application.CreateForm(TfrmWork, frmWork);
 Application.Run


Podgoretsky   (2013-02-21 08:40:00) [5]

Аутентификацию сначала бы пройти.


Медвежонок Пятачок   (2013-02-20 22:15:00) [6]

1. Как сделать, чтобы при вводе правильного логина и пароля-окно авторизации закрывалось и оставалось только форма с базой данных.

Типа как отпилить сук на котором сидишь?

С учетом того, что первая форма - это application.mainform, то открыть вторую или третью а затем закрыть первую = завершить работу приложения.


Ega23   (2013-02-20 22:11:00) [7]


> 2. Как сделать, чтобы вместо вводимого пароля высвечивались звездочки.


TEdit.PasswordChar


> 1. Как сделать, чтобы при вводе правильного логина и пароля-
> окно авторизации закрывалось и оставалось только форма с
> базой данных.


Сделай модальную форму с проверкой, и дальше либо создавай главную форму, либо выходи.


Наверх

Титульная страница Поиск, карта сайта Написать письмо