Architecture Net



         

Обработка форм - часть 2



Enter your name:
<!-- Введите ваше имя -->
<input name="txtName" type="text" size="30">
<!-- имя = "txtName" тип = "текстовый" размер = "30" -->
<input name="cmdEcho" type="submit" value="Echo">
<!-- входное имя = "cmdEcho" тип = "представить" значение =
// "Echo" -->
</form>
</BODY> <!-- тело -->


</HTML>

И опять же, будет полезно, используя отладчик, понаблюдать, что происходит внутри динамически подключаемой библиотеки (DLL) расширения интерфейса прикладного программирования Internet-сервера (ISAPI). Вы увидите, что функция HttpExtension-Proc из ATLServerAppIsapi . dll принимает параметр EXTENSION_CONTROL_BLOCK, который содержит данные, перечисленные в табл. 12.2. Содержимое этих элементов берется из формы, определяемой впоказанном выше файле SimpleForm.html.


В этом примере SimpleForm.html использует метод POST (ЗАПИСАТЬ), и данные переносятся в тело запроса. В классе обработчика доступ к этим данным выполняется с помощью массива FormVars (Переменные формы). Если файл SimpleForm.html был изменен для использования метода GET (ПОЛУЧИТЬ), тогда в строке запроса должны находиться данные [В элементе FORM (ФОРМА) атрибут метода может указывать один из двух методов отправки данных формы на Web-сервер, а именно GET (ПОЛУЧИТЬ) или POST (ЗАПИСАТЬ). Первый из них в конце универсального идентификатора ресурса (URI), указанного атрибутом действия элемента FORM (ФОРМА), вставляет знак вопроса, а затем — данные формы. Метод POST (ЗАПИСАТЬ) помещает эти данные в тело HTTP-запроса ]. Впрочем, массив FormVars также можно использовать для доступа к данным формы. В табл. 12.3 показаны значения параметра EXTENSION_ CONTROL_BLOCK в том случае, если бы элемент FORM (ФОРМА) был изменен для использования метода GET (ПОЛУЧИТЬ).


На рис. 12.18. показан файл SimpleForm.html с заполненной формой. Когда вы щелкнете на кнопке Echo (Эхо), то с помощью переменной формы осуществляется доступ к process_post. srf. Эта переменная содержит значение Bob (Боб). Результат показан на рис. 12.19.
Таблица 12.2. Структура EXTENSION_CONTROL BLOCK с указанием метода POST (ЗАПИСАТЬ)




Содержание  Назад  Вперед