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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.11.2009, 19:50
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
Восклицание Авторизация пользователей

Здравствуйте!

Вопрос: Надо сделать авторизацию на главной форме для входа в программу! Есть два пользователя - Администратор-пороль, Продавец-пороль!
И как это будет в Access, в таблице поле Администратор-пороль, Продавец-пороль? Вообщем, пожалуйста отпишите код на примере с названием таблицы если это надо! И вы мне очень поможете

Заранее спасибо!
Ответить с цитированием
  #2  
Старый 25.11.2009, 21:44
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

делаешь таблицу на 3 поля (остальные на твоё усмотрение)
1. Автоинкремент
2. Логин
3. Пароль

Делаешь форму для ввода логина и пароля и создаешь её перед главной форме а дальше уже проверка на правильность
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 26.11.2009, 17:20
Йогурт Йогурт вне форума
Начинающий
 
Регистрация: 20.11.2009
Сообщения: 109
Репутация: 5
По умолчанию

Вообщем, все сделал сам! Программная авторизация без какой либо базы для двух пользователей! Если кому надо то вот код
PHP код:
var
  
id1,pass1String;
  
id2,pass2String;
begin
  id1
:='Администратор';
  
pass1:='12345';
  
id2:='Продавец';
  
pass2:='111';

//Администратор
  
if (edit1.Text=id1) and (edit2.Text=pass1then  form2.Visible:=false
//Продавец
  
else if (edit1.Text=id2) and (edit2.Text=pass2then
    begin
      form2
.Visible:=false;
      
Form2.N1.Visible:=False;
      
Form2.N2.Visible:=False;
      
Form2.N5.Visible:=False;
      
Form2.N6.Visible:=False;
    
end
    
else
      
begin
        
if ((edit1.Text=id1) and (edit2.Text<>pass1))
          or ((
edit1.Text=id2) and (edit2.Text<>pass2)) then
          ShowMessage
('™Введен не верный логин или пароль, попробуйте еще раз!™');
      
end;

//отчистка edit
  
if ((edit1.Text=id1) and (edit2.Text=pass1))
    or ((
edit1.Text=id2) and (edit2.Text=pass2)) then Form2.Visible:=true;
  if ((
edit1.Text<>id1) or (edit2.Text<>pass1))
    or ((
edit1.Text<>id2) or (edit2.Text<>pass2)) then
    begin
      edit1
.Text:='';
      
edit2.Text:='';
    
end
      
else
        if ((
edit1.Text=id1) and (edit2.Text=pass1))
          or ((
edit1.Text=id2) and (edit2.Text=pass2)) then
          begin
            edit1
.Text:='';
            
edit2.Text:='';
          
end
Ответить с цитированием
  #4  
Старый 27.11.2009, 12:30
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Цитата:
Сообщение от Йогурт
Вообщем, все сделал сам! Программная авторизация без какой либо базы для двух пользователей! Если кому надо то вот код

Врятли такой код кому понадобится, вообще, если бы у меня хоть один программист подобное написал, я бы его уволил))
Ответить с цитированием
  #5  
Старый 27.11.2009, 14:27
Rat Rat вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 391
Репутация: 6078
По умолчанию

Asinkrit Покажи как надо.
Ответить с цитированием
  #6  
Старый 27.11.2009, 16:21
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Цитата:
Сообщение от Rat
Asinkrit Покажи как надо.

Легко)

Вырезки из одного проекта (база ms access):

во первых, перед запуском приложения, надо вывести сплеш окно для ввода логина и пароля, и если в базе таковые имеются, то приложение стартует, иначе нет.

Файл проекта:
Код:
  Application.Initialize;
  Application.CreateForm(TDM, DM); 

  DM.DBPath:=ExtractFilePath(Application.ExeName)+'_Garanties.mdb';

  FKSplash := TFKSplash.Create(Application);
  FKSplash.Show;
  FKSplash.Update;

  while not FKSplash.Going do Application.ProcessMessages;

  if FKSplash.Stop then
    begin
    DM.Free;
    FKSplash.Hide;
    FKSplash.Free;
    end
      else
        begin
        FKSplash.Hide;
        FKSplash.Free;
        // в этом месте создание форм и модулей
        Application.Run;
        end;

В дата модуле, подключение и проверка на наличие юзера:

Код:
function TDM.ConnectToDB: boolean;
begin
  try
    ABase.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
      FDBPath+';Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=19473396';
    ABase.Connected:=true;
  finally
    Result:=ABase.Connected;
  end;
end;

function TDM.GetUserID(const aLogin, aPassword: TStr50): Integer;
begin
  with QuerrySQL do
    try
      if active then close;
      SQL.Text:='select user_id, user_FIO, user_is_admin from users '+
        'where user_login = '+QuotedStr(aLogin)+' and user_password = '+
        QuotedStr(aPassword);
      Open;
      Last;
      First;
      if FieldByName('user_id').AsInteger > 0 then
        begin
        Result:=FieldByName('user_id').AsInteger;
        FUserFIO:=FieldByName('user_FIO').AsString;
        FIsAdmin:=FieldByName('user_is_admin').AsBoolean;
        end
          else
            begin
            Result:=0;
            FUserFIO:='';
            end;
      if active then close;
    except
      Result:=0;
      FUserFIO:='';
    end;
  FUserID:=Result;
end;

В сплеш форме, проверяем на введенные данные:
Код:
if DM.GetUserID(dxEdit1.Text,dxMaskEdit1.Text) = 0 then 
    StatusLabel.Caption:='Неверный логин или пароль...'
  else
    begin
      FGoing := true;
      FStop := false;
    end;

Или если нажата кнопка отмена, то
Код:
    FStop:=true;
    FGoing:=true;

Вообщем то все просто)

Последний раз редактировалось Asinkrit, 27.11.2009 в 16:26.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter