Utwórz formularz do niestandardowego logowania. Utwórz elementy tekstowe dla nazwy użytkownika i hasła itp. oraz przycisku logowania. Kiedy użytkownik kliknie ten przycisk logowania, wywołaj tę procedurę plsql.
zadeklaruj
vPassword fox_user.password%type; -- pobierz typ pola hasła z głównej tabeli użytkownika
plid paramlist;
begin
-- sprawdź, czy nazwa użytkownika jest pusta
jeśli :appstart.usn jest pusta, to
error_message('Nazwa użytkownika musi być wpisana.');
go_item('appstart.usn');
raise Form_Trigger_Failure;
end if;
-- sprawdź, czy hasło jest null
jeśli :appstart.psw ma wartość null then
error_message('Hasło należy wprowadzić.');
go_item('appstart.psw');
raise Form_Trigger_Failure;
end if;
wybierz hasło do vpassword
from fox_user
gdzie rtrim(userid) =rtrim(:appstart.usn);
-- odszyfruj hasło przy użyciu własnego szyfrowania / metoda odszyfrowania.
-- poniżej wspomniane odszyfrowanie to jednostka programowa, której użyłem
if :appstart.psw !=decrypt(vpassword) then
error_message('Nieprawidłowe hasło dla użytkownika. Odmowa logowania! ');
go_item('appstart.psw');
raise form_trigger_Failure;
end if;
-- jeśli poprawna nazwa użytkownika i hasło to utwórz listę parametrów do przekazania formularza wywołującego
plid :=get_parameter_list('formdata');
if Not id_null(plid) then
Destroy_parameter_list(plid);
end if;
plid :=Create_Parameter_list('formdata');
Add_parameter(plid, 'userid', text_parameter, :appstart.usn);
new_form('main', full_rollback, no_query_only, plid);
wyjątek
wtedy, gdy nie znaleziono_danych
error_message('Nieprawidłowy identyfikator użytkownika. Wprowadź prawidłowy identyfikator użytkownika i hasło. Odmowa logowania!');
go_item('appstart.usn');
kiedy zbyt_wiele_wierszy to
error_message('Błąd wewnętrzny...');
kiedy inni to
null;
koniec;