Two procedures to process a HTML form:
Forms can have the following types of elements:
procedure get_access as
begin
htp.htmlOpen;
htp.headOpen;
htp.title('Get password');
htp.header(1, 'Grade Book Access Page');
htp.headClose;
htp.bodyOpen;
htp.formOpen(owa_util.get_owa_service_path ||
'user_access.start_session');
htp.print('Today is ' ||
to_char(sysdate, 'Day') || ' ' ||
to_char(sysdate, 'Dd / Mon / YYYY HH:MI AM'));
htp.nl;
htp.tableOpen;
htp.tableRowOpen;
htp.tableData(htf.strong('USER ID: '));
htp.tableData(htf.formText('usid', 20, 50));
htp.tableRowClose;
htp.tableRowOpen;
htp.tableData(htf.strong('PASSWORD: '));
htp.tableData(htf.formPassword('passwd', 20, 50));
htp.tableRowClose;
htp.tableClose;
htp.formSubmit(NULL, ' Proceed ');
htp.formReset;
htp.formClose;
htp.bodyClose;
htp.htmlClose;
Exception
when others then
htp.print('error in user_access.get_access');
end get_access;
procedure start_session(usid in varchar2 DEFAULT NULL,
passwd in varchar2 DEFAULT NULL) as
user_buffer varchar(15);
passwd_buffer varchar(15);
time_buffer date;
auth_buffer varchar(15);
random_num varchar(10);
access_buffer varchar2(30);
bad_passwd exception;
begin
select A.userid, A.password, A.lastAccess, A.authority
into user_buffer, passwd_buffer, time_buffer,
auth_buffer
from users A
where upper(A.userid)=upper(start_session.usid);
if start_session.passwd != passwd_buffer then
raise bad_passwd;
end if;
random_num := to_char(sysdate, 'SSSSS');
access_buffer := user_buffer || ',' || random_num;
update users
set u_access = access_buffer,
lastAccess = sysdate
where users.userid=user_buffer;
commit;
menus.teacher_menu(access_buffer);
Exception
when bad_passwd then
htp.print('Bad password ');
when no_data_found then
htp.print('Invalid user');
when others then
htp.print('Error in user_access.start_session');
end start_session;
create table users ( userid varchar2(15), password varchar2(15), lastaccess date, u_access varchar(30), -- coded string authority varchar2(15) -- TEACHER/STUDENT );