|
#1
|
|||
|
|||
Пользователи
Уважаемые,
Проблема в следующем: В моей программе требуется создать "Вход и регистрацию пользователей" На форме имеется: box_username {Edit для ввода имени} box_userpassword {Edit для ввода пароля} cb_regmark {CheckBox при установке галочки регистрируем пользователя} btn_userstart_ok {Button для входа или регистрации пользователя} btn_userstart_cancel {Button для выхода} Ресурсы: Папка Users которая хранит внутрение папки пользователей пример ..users\пользователь1 Файл пароля date.ejd который хранит пароль пользователя путь к файлу-паролю : users\пользователь1\date.edj |
#2
|
||||
|
||||
Че сделать то надо?
Регистрацию? Или вход? Или получать и сохранять имена с паролями? Или все сразу? Пароли зашифрованы или нет? Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. Последний раз редактировалось The Shadow, 28.03.2008 в 20:08. |
#3
|
|||
|
|||
Пример:
открывается форма..на ней 2 поля edit 1-имя пользователя 2-пароль 2 кнопки -вход и выход чекбокс-регистрировать или нет если галочка на cb_regmark поставил пользователь то регистрировать нового пользователя , если не поставил то входить, но проверять на наличие уже такого пользователя.. Пароли пока что не шыфровал, еще рано, надо основу построить. Не буду мелочиться ловите код, но почему то он у меня пашет..старый случайно удалил.. Код:
unit unit_userstart; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, XPMan, StdCtrls; type Tfrm_userstart = class(TForm) Image1: TImage; Label1: TLabel; box_username: TEdit; Label2: TLabel; box_userpassword: TEdit; btn_userstart_ok: TButton; btn_userstart_cancel: TButton; cb_regmark: TCheckBox; XPManifest1: TXPManifest; message: TLabel; procedure btn_userstart_cancelClick(Sender: TObject); procedure btn_userstart_okClick(Sender: TObject); procedure cb_regmarkClick(Sender: TObject); procedure Image1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var frm_userstart: Tfrm_userstart; implementation uses unit_main; {$R *.dfm} procedure Tfrm_userstart.btn_userstart_cancelClick(Sender: TObject); begin close; end; procedure Tfrm_userstart.btn_userstart_okClick(Sender: TObject); var f:textfile; fs:tstringlist; s:string; begin {ПРОВЕРКА НА РЕГИСТРАЦИЮ} if cb_regmark.Checked=true then begin {ПРИ РЕГИСТРАЦИИ ПРОВЕРЯЕМ НА НАЛИЧИЕ ТАКОГО ЖЕ ПОЛЬЗОВАТЕЛЯ} {$I-}mkdir('users\'+box_username.Text);{$I+} if ioresult=0 then begin {СОЗДАЕМ ДИРЕКТОРИЮ И ФАЙЛЫ ДЛЯ ТЕКУЩЕГО ПОЛЬЗОВАТЕЛЯ} assignfile(f,'users\'+box_username.Text+'\data.ejd'); rewrite(f); closefile(f); {ЗАБИВАЕМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ} fs:=tstringlist.Create; fs.LoadFromFile('users\'+box_username.Text+'\data.ejd'); fs.Strings[fs.Count-1]:=box_userpassword.text; assignfile(f,'users\'+box_username.Text+'\worklist.ejd'); rewrite(f); closefile(f); frm_userstart.Visible:=false; frm_main.visible:=true; end else begin {ВЫДАЕМ СООБЩЕНИЕ О НАЛИЧИЕ В ПАПКАХ ПРОГРАММЫ ТАКОГО ПОЛЬЗОВАТЕЛЯ} message.Caption:='=Ошибка==========='+#13+'Такой пользователь уже '+#13+'существует'; box_username.Text:=''; box_userpassword.Text:=''; end; end else begin {АВТОРИЗУЕМ ПОЛЬЗОВАТЕЛЯ} if (box_username.text='') or (box_userpassword.text='') then message.Caption:='=Ошибка============='+#13+'Имя пользователя или пароль '+#13+'не действительны' else begin {$I-}mkdir('users\'+box_username.Text);{$I+} if ioresult<>0 then message.Caption:='=Ошибка============='+#13+'Имя пользователя или пароль '+#13+'не действительны' else begin fs:=TstringList.Create; fs.LoadFromFile('users\'+box_username.Text+'\data.ejd'); if fs.Strings[1]=box_userpassword.Text then begin frm_userstart.Visible:=false; frm_main.visible:=true; end else begin message.Caption:='=Ошибка============='+#13+'Имя пользователя или пароль '+#13+'не действительны'; end; end; end; end; end; procedure Tfrm_userstart.cb_regmarkClick(Sender: TObject); begin if btn_userstart_ok.Caption<>'Регистрация' then btn_userstart_ok.Caption:='Регистрация' else btn_userstart_ok.Caption:='Войти'; end; procedure Tfrm_userstart.Image1Click(Sender: TObject); begin end; end. Aristarh Dark:не забываем использовать тэги |