Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.01.2012, 18:43
el_mexico el_mexico вне форума
Прохожий
 
Регистрация: 03.12.2011
Сообщения: 4
Репутация: 10
По умолчанию Как сделать авторизацию с проверкой по логину и паролю

Есть две таблицы: "Пароль" и "Пользователь". Kod - это код пользователя, он в обоих таблицах.
Код:
procedure TForm2.Button1Click(Sender: TObject);
var s,i:integer;
Code:Ansistring;
begin
s:=0;
Code:=Edit2.Text;
for i:=1 to length(Code) do Code[i]:=Chr(Ord(Code[i])-2) ;
If Table2.Locate('Login', Edit1.Text, []) then
s:=s+1;
If Table1.FieldByName('Kod').Value=Table2.FieldByName('Kod').Value then begin
If Table1.Locate('Parol', Code, []) then s:=s+1;
If s=2 then begin
Form1.Enabled:=True;
s:=0;
Form1.Label3.Caption:=Table2.FieldByName('Login').Value;
If Table2.FieldByName('Status').Value=1 then Form1.N2.Enabled:=False;
If Table2.FieldByName('Status').Value=2 then begin
Form1.N2.Enabled:=False;
Form1.N6.Enabled:=False;
end;
end; end;
Close;
Edit1.Clear;
Edit2.Clear;
s:=0;
 
end;
Там у меня ещё шифровка, без неё никак. Но это не правильная авторизация какая-то, потому что даже если логин и пароль не совпадают по коду но существуют в таблицах, то авторизация проходит. В общем надобно чтобы авторизация проходила, только когда логин и пароль совпадают по коду.
Ответить с цитированием
  #2  
Старый 08.01.2012, 19:04
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Переделать полностью, включая формат базы.
Или, если уж работать с этим, то проверяй ID пользователя с введённым логином, и получай пароль по ID.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 08.01.2012, 19:07
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

из каких соображений две таблицы, а не одна если не секрет?
может так:
PHP код:
If Table2.Locate('Login'Edit1.Text, []) then
If Table1.Locate('Parol'Code, []) then
If Table1.FieldByName('Kod').Value=Table2.FieldByName('Kod').Value then begin 
Ответить с цитированием
Этот пользователь сказал Спасибо Pyro за это полезное сообщение:
el_mexico (08.01.2012)
  #4  
Старый 08.01.2012, 23:20
el_mexico el_mexico вне форума
Прохожий
 
Регистрация: 03.12.2011
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Pyro
из каких соображений две таблицы, а не одна если не секрет?
Многомудрый преподаватель так повелел сделать.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter