Программирование >>  Руководство по созданию web приложений 

1 ... 108 109 110 [ 111 ] 112 113 114 ... 141


Просмотр прав сотрудника

Пароль

Рис. . Форма ввода идентификатора и пароля

сотрудника

User: frolw word

Рис. /-9. Перечень прав сотрудника магазина, извлеченный из багы данных

Похожие действия выполняла консольная программа ! :.; .: , .рассмотренная нами в главе. Именно эта программа И была в основу .1 расширения а

А т . . опишем исходные тексты ISFORM.

Исходный текст документа HTML, предназначенного для запуска этого расширения. Вы найдете в листинге

Листинг 7-12 хранится в файле I на прилагаемом к

книге компакт-диске.

В этом документе имеется . ссылающаяся на . файл расши-

рения isforra.dll:

<fonn

Помимо всего прочего, в этой форме определены два поля, предназначенные для ввода идентификатора и пароля:

<tr>

atrl и1ааГ1= 134 >Идантиикатвр: a,/t(Ja.td wi£lt:n= 23<3 >

<input </tr> <tr>

<td . . . ; -

<input . ! . .

a/tr>



Исходный текст функции fictExtd п никаких особенностей не

имеет и полностью аналогичен исходному примененному нами во всех

расширений ISAPI.

Все основные события происходят внутри функции HttpExtensicnProc. к описанию которой мы и приступаем.

В области локальных ; функции мы определили вспомогатель-

ных массива для храпения а также два указателя, применяемых для из-

влечения параметров из блока отправленных браузером:

CHAR CHAR

tiia * szPtr;

В начале работы мы помещаем пулевое в ноле

блока ЕСВ. а затем в буфер - HTTP и начальный

фрагмент документа HTML, формируемого динамически:

Данные, отправленные браузером, копируются в буфер szTeipiuf:

IpB.E:-. IpbData, lpECB->cbAvailable + 1) ; + 1] = -XO;

Эти данные затем перекодируются функцией DecodeStr

Исходный текст этой функции мы рассматривали в посвящеиных

программам CGI.

Далее мы запускаем цикл извлечения из принятых данных содержимого по-и El формы с идентификатором сотрудника и его паролем:

.а >famoEaf Iir}E r:i...>ri:i\v- iilablel = К

+ 1] -- \0-;

Данные из этих полей передаются расширению

Исходный текст главного модуля приложения ISFORM приведен в листинге 7-13.

Листинг 7-13 хранится в файле ctiTVISFORWNsform.c на прилагаемом к книге компакт-диске.

Рассмотрим наиболее важные фрагменты исходного текста этого модуля.

В области глобальных мы определили массивы для хранения

идентификатора пользователя его пароля s . . . прав szUser-

Higrits. а также текста сообщения об ошибках sErrMsg (если они возникнут при

базе данных):

char char



- = szPtr + 1;

. >= (szTempBuf + .

break;

else break;

Здесь используется техника, с которой мы познакомили Вас в исходных текстах программ CGI. Она предполагает применение функций DecodeSt г и GetParam.

Далее наша программа добавляет в буфер выходного документа HTML идентификатор пользователя и пароль:

User:

strcat(szBuff,

Соответствующие строки извлечены из aaiiaaia. отправленных формой, при помощи ОеГРагаш.

Затем наше вызывает . : . .

передавая ей - пароль, а также указатель - . на буфер,

в который эта функция должна записать права пользователя:

else {

stfoatf ааВагf. iiiw(wa</a2> )

strcat(szBuff,

Если функция Qotiaaager,tah: a roan - к базе данных без

ошибок, она возвращает нулевое значение. Наше при этом добав-

ляет в выходной буфер права пользователя, извлеченные из ; гз

базыданных Bookstore.

Нри возникновении ошибок в выходной буфер копируется содержимое строки сообщения об ощибке sErrMsg.

for(szParam = : f;. )

szPtr = sia- ran, &};

if(szPtr != NULL)



1 ... 108 109 110 [ 111 ] 112 113 114 ... 141

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика