|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.05.2013, 21:32 | #1 |
Пользователь
Регистрация: 14.10.2012
Сообщений: 40
|
Диалог ввода пароля?
[IMG][/IMG]
Есть 2 типа пользователей : 1.Библиотекарь 2.Ученики Сам вопрос: как организовать ввод пароля при нажатии на кнопку библиотекарь и возможностью смены пароля если забыл (ну по типу эл.почты) после ввода пароля открывается другая форма и еще при нажатии на кнопку "ученик" он не может редактировать и и заполнять таблицы а только просматривать. Skypi:Xsaroo |
14.05.2013, 21:43 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Пишите программу просмотра и программу редактирования. Меньше проблем.
|
14.05.2013, 21:57 | #3 |
Пользователь
Регистрация: 14.10.2012
Сообщений: 40
|
Вы предлагаете сделать два варианта программы как я понял.
В одной редактирование и все такое , в другой только просмотр ок спасибо так и сделают. Только бы пароль для библиотекаря для 1 проги не помешал бы желательно с возможностью напоминания ,смены пароля |
14.05.2013, 23:00 | #4 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
я такую программу где-то дня 4 писал, если найду исходник-выложу, а для начала предлагаю вам создать типизированный файл записей, и задать изначально стандартный пароль, чтобы его в последствии можно было менять. Да, и еще, какие таблицы?
from dark to light)
Последний раз редактировалось Алексей_2012; 14.05.2013 в 23:05. |
14.05.2013, 23:27 | #5 |
Пользователь
Регистрация: 14.10.2012
Сообщений: 40
|
Самые обычные, созданы в Access)
Для вывода использую dbGrid-ы. Мне скорее нужен пароль не на саму базу . В принципе нашел но все равно нет, + не понимаю как пароль заменить + добавить редактирование пар. var Form1: TLoginForm; count: integer; l, p: string; implementation {$R *.dfm} function CheckUser(log, pas: string): boolean; begin if (sha1(sha1(log)) = l) and (sha1(sha1(pas)) = p) then result := true else result := false; end; procedure TLoginForm.Button1Click(Sender: TObject); begin if CheckUser(Edit1.Text, Edit2.Text) then begin status := 0; close; end else begin inc(count); if count = 3 then begin status := 1; close; end else Application.MessageBox (PChar('Вы ввели неправильный логин\пароль ' + inttostr(count) + ' раз(а) (еще ' + inttostr(3 - count) + ' раз(а) можно ошибиться)'), 'Защита'); end; end; procedure TLoginForm.StringsChange(Sender: TObject); begin if (length(Edit1.Text) = 0) or (length(Edit2.Text) = 0) then begin Button1.Enabled := false; end else begin Button1.Enabled := true; end end; procedure TLoginForm.FormCreate(Sender: TObject); var ini: TIniFile; begin ini := TIniFile.Create(ExtractFilePath(Par amStr(0)) + 'settings.ini'); try l := ini.ReadString('Main', 'Login', '8BE64875D187CE458B5565072E92762EBE 34D1DE'); p := ini.ReadString('Main', 'Password', '2D7A3B58812195A8CB8B8BADEF8C924A87 3B1D65'); finally ini.Free; end; status := 2; count := 0; StringsChange(self); end; procedure TLoginForm.FormDestroy(Sender: TObject); var ini: TIniFile; begin ini := TIniFile.Create(ExtractFilePath(Par amStr(0)) + 'settings.ini'); try ini.writestring('Main', 'Login', l); ini.WriteString('Main', 'Password', p); finally ini.Free; end; end; Последний раз редактировалось xsaroo; 14.05.2013 в 23:31. |
15.05.2013, 00:42 | #6 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Ладно, программы не нашел, быстро накидал новую, так что извиняюсь за ужасный код, там 4 формы. программа позволяет задавать стандартный пароль (0000-при первом запуске или после случайного или намеренного уничтожения файла) и возможность его(пароль) восстановить и/или заменить. Но настоятельно рекомендую вам отказаться от типизированного файла (а в моей программе именно он и используется), и продумать алгоритм шифровки данных, если помог, то на весы можно не нажимать....
from dark to light)
|
15.05.2013, 00:46 | #7 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
P.S. Если нужен многопользовательский доступ с логином, паролем и проверкой на существование этого логина, то смогу помочь (т.е если логин уже зарегистрирован, то выводится ошибка)
from dark to light)
|
15.05.2013, 07:17 | #8 |
Форумчанин
Регистрация: 27.11.2012
Сообщений: 190
|
Имхо, лучше разграничить права в зависимости от типа пользователя
|
15.05.2013, 07:59 | #9 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Елки-палки. В БД создайте ещё одну таблицу с 3-мя полями : login -текстовый, pass-текстовый, access-логический (имена полей можете придумать сами). Login и pass сами поняли за что отвечают, а поле access отвечают за права админа - true - сидит админ, false - пользователь. Запарольте Access'ную БД. Создайте форму авторизации и главную форму. При авторизации пользователя смотрите есть ли права на редактирование инфы. Если есть права, делайте видимым соответствующий функционал на главной форме обычным Visible:=true, скрывайте форму авторизации и показывайте главную методами Hide и Show. Нет прав - нет функционала.
Если помог, проси поставить минус. Будь оригинален!
|
15.05.2013, 20:18 | #10 | |
Пользователь
Регистрация: 14.10.2012
Сообщений: 40
|
Цитата:
Благодарю. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Форма ввода пароля | R71MT | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 16.06.2011 16:22 |
Поле ввода для пароля | Небесный | HTML и CSS | 2 | 06.11.2010 21:09 |
Диалог ввода строки. | Alex Cones | Общие вопросы Delphi | 2 | 03.12.2009 18:17 |
Скрытие ввода пароля | masterdela | Общие вопросы Delphi | 6 | 07.05.2009 10:37 |
Диалог ввода файла | SAndrus | Microsoft Office Excel | 9 | 10.07.2007 08:32 |