Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Спецификация процедур пакета htp



  • procedure title(ctitle in varchar2) — выводит название документа (тэги < TITLE> ).
  • procedure htitle(ctitle in varchar2) — выводит название документа и повторяет его в заголовке первого уровня (тэги < TITLE>, < H1> ).
  • procedure header(nsize in integer, cheader in varchar2) — выводит заголовок уровня nsize (тэги < H1> ... < H6> ).
  • procedure url(curl in varchar2, cname in varchar2) — формирует cname как гипертекстовую связь, указывающую на curl (тэги < A HREF> ).
  • procedure gif(curl in varchar2) — включает в документ картинку, путь до которой curl (тэги < IMG> ).
  • procedure gif(curl in varchar2, calign in varchar2) — включает в документ картинку, путь до которой curl с выравниванием, определяемым параметром calign (тэги < IMG> ).
  • procedure bold(ctext in varchar2) — выводит текст ctext жирным шрифтом (тэги < B> ).
  • procedure italic(ctext in varchar2) — выводит текст ctext шрифтом italic (тэги < I> ).
  • procedure item(cval in varchar2) — выводит cval как элемент списка (тэги < ITEM> ).
  • procedure formOpen(curl in varchar2) — создает форму с действием curl (тэги < FORM> ).
  • procedure formHidden(cname in varchar2, cvalue in varchar2) — создает скрытое поле формы для хранения значения cvalue переменной с именем cname.
  • procedure formPassword(cname in varchar2), procedure formPassword(cname in varchar2, cvalue in varchar2) — создает поле формы для ввода значения переменной — пароля с именем cname и значением по умолчанию cvalue.
  • procedure formField(cname in varchar2, nsize in integer), procedure formField(cname in varchar2), procedure formField(cname in varchar2, cvalue in varchar2) — создает поле формы для ввода значения переменной с именем cname длиной nsize со значением по умолчанию cvalue.
  • procedure formText(cname in varchar2, nrow in integer, ncol in integer) — создает многострочное поле формы (длиной ncol, высотой nrow ) для ввода значения переменной с именем cname.
  • procedure formCheckbox(cname in varchar2) — создает элемент checkbox для ввода значения логической переменной cname.
  • procedure formRadio(cname in varchar2, cval in varchar2) — создает элемент radiobutton для ввода одного из значений cval переменной cname.
  • procedure formSelectOpen(cname in varchar2) — создает список значений для переменной с именем cname.
  • procedure formSelectOption(cval in varchar2) — добавляет значение cval в список значений переменной, описанной в formSelectOpen.
  • procedure formSelectClose — заканчивает список значений, открытый formSelectOpen.
  • procedure formDo(cname in varchar2) — создает кнопку типа SUBMIT текущей формы с именем cname.
  • procedure formDo — создает кнопку типа SUBMIT текущей формы с именем Submit.
  • procedure formUndo(cname in varchar2) — создает кнопку типа RESET текущей формы с именем cname.
  • procedure formUndo — создает кнопку типа RESET текущей формы с именем Reset.
  • procedure formClose — закрывает текущую форму.

Процедуры вывода

  • procedure print (cbuf in varchar2), procedure print (dbuf in date), procedure print (nbuf in number) — выводят значение различных типов.

Синонимы для процедуры print — p

  • procedure p (cbuf in varchar2) procedure p (dbuf in date) procedure p (nbuf in number).

Процедуры, выводящие постоянные значения

  • procedure line — разделительная линия (тэг < HR> ).
  • procedure para — начало параграфа (тэг < P> ).
  • procedure nl — перевод строки (тэг < BR> ).
  • procedure item — элемент списка (тэг < LI> ).
  • procedure ulistOpen — начало ненумерованного списка (тэг < UL> ).
  • procedure ulistClose — окончание ненумерованного списка (тэг < /UL> ).
  • procedure olistOpen — начало нумерованного списка (тэг < OL> ).
  • procedure olistClose — окончание нумерованного списка (тэг < /OL> ).
  • procedure dlistOpen — начало списка определений (тэг < DL> ).
  • procedure dlistClose — окончание списка определений (тэг < /DL> ).
  • procedure dterm — термин списка определений (тэг < DT> ).
  • procedure ddef — определение термина (тэг < DD> ).
  • procedure preOpen — начало форматированного текста.
  • procedure preClose — окончание форматированного текста.

Часть 6. CGI, PHP, Perl, MySQL и CMS системы

Глава 1. CGI

Большое количество World Wide Web приложений основано на использовании внешних программ, управляемых Web сервером. Использование данных программ позволяет строить Web приложения с динамически обновляемой информацией, хранящейся в базах данных или генерирующейся в зависимости от бизнес-правил решаемых задач. Для связи между Web сервером и вызываемыми программами широко используется Common Gateway Interface (CGI), имеющий реализации как для Windows-ориентированных программ, так и для приложений, функционирующих в среде Unix.

Windows CGI требует, чтобы Web сервер декодировал данные из HTML форм, если они переданы при помощи POST метода запроса. Он не требует от сервера декодирования параметров, если они переданы в качестве строки запроса ( query string ), являющейся частью URL. Существует два способа, которыми данные из форм могут быть переданы серверу браузером:

URL-Encoded

Это наиболее используемый формат данных, передаваемых из форм. Содержимое полей формы выделяются из формы и передаются согласно спецификации HTML 1.0, а затем собираются в одну строку, где отделяются друг от друга символом амперсанда. Тип содержания сообщения устанавливается браузером в application/ x — www — form — urlencoded.

Multipart Form Data

Данный формат разработан для эффективной загрузки файлов на сервер с использованием форм. Содержимое полей формы передается как многостраничное MIME сообщение. Каждое поле содержится в одной странице. Тип содержания, устанавливается браузером в multipart/

form — data. «Грамотные» серверы должны уметь обрабатывать оба типа данных из форм.

Вызов CGI программ

Сервер использует функцию CreateProcess() для вызова CGI программ. Сервер синхронизируется с CGI программой, поскольку он должен определить момент завершения CGI программы. Это достигается использованием функции Win32 WaitForSingleObject(), ожидающей получения сигнала завершения CGI программы.

Командная строка

Сервер должен вызывать CGI программу выполняя функцию CreateProcess() с командной строкой следующего формата:

WinCGI-exe cgi-data-file

WinCGI-exe — полный путь к исполняемой CGI программе. Сервер не зависит от «текущего каталога» или переменной окружения PATH. Примите к сведению, что «исполняемая» не обязательно означает.EXE файл. Это может быть документ, ассоциирующийся с реально исполняемой программой, описанной в WIN.INI или System Registry.

cgi-data-file — полный путь к CGI файлу данных.

Метод вызова

Сервер использует CreateProcess() для запуска процесса, не имеющего главного окна. Вызванный процесс не будет отображаться каким либо образом на мониторе сервера.

Некоторые сервера поддерживают режим отладки CGI программ и скриптов, что позволяет серверу запускать CGI программу как обычный процесс с созданием главного окна и отображением информации на мониторе сервера. Данный способ весьма удобен на стадии отладки CGI программ.

CGI файл данных

Сервер передает данные CGI программам через Windows «private profile» afqk, в формате «параметр-значение» (windows INI файл). CGI программа может прочитать данный файл и получит все данные, передаваемые ей из формы, а также автоматически генерируемые браузером данные.

CGI файл данных состоит из следующих секций:

  • CGI
  • Accept
  • System
  • Extra Headers
  • Form Literal
  • Form External
  • Form Huge
  • Form File

Секция [CGI]

Данная секция содержит большинство специфических CGI параметров (тип доступа, тип запроса, дополнительные заголовки, определенные в других секциях и т.п.). Каждое значение представлено в виде символьной строки. Если значение является пустой строкой, значит данный параметр был опущен. Список параметров данной секции представлен ниже:

Request Protocol

Название и модификация информационного протокола, использованного для передачи данного запроса. Формат: протокол/модификация.

Пример: HTTP/1.0

Request Method

Метод, который использовался для данного запроса. Для HTTP это GET, HEAD, POST и т.д.

Executable Path

Логический путь к исполняемой CGI программе, необходимый для ссылки CGI программе на саму себя.

Logical Path

Запрос также может указывать к ресурсам, необходимым для выполнения данного запроса. Данный параметр содержит путь в том виде, который был получен сервером без мэпирования его на физический путь на диске.

Physical Path

Если запрос содержит информацию о логическом пути, сервер преобразует его к физическому пути (например, к пути к файлу на диске) доступа согласно синтаксическим правилам операционной системы.

Query String

Информация, размещающаяся после? в URL вызываемой CGI программы. Сервер оставляет эту информацию без изменений в том виде, в котором она была помещена в URL.

Request Range

Byte-range спецификация получаемая вместе с запросом (если есть). Смотри текущий Internet Draft (или RFC), описывающий расширение HTTP для получения более полной информации. Сервер должен поддерживать работу CGI программ в byte-ranging.

Referer

URL документа, содержащего ссылку на данную CGI программу. Надо заметить, что некоторые браузеры закрывают данную возможность и не дают ее использовать.

From

E-mail адрес пользователя браузера. Надо заметить, что данный параметр присутствует с спецификации HTTP, но не используется большинством браузером из соображений секретности.

User Agent

Строка, описывающая программное обеспечение браузера. Не генерируется большинством браузеров.

Content Type

Данный параметр содержит MIME-тип данных, посланных клиентом вместе с полями из формы, если эти данные были посланы. Формат:

type/subtype

Content Length

Для запросов, с которыми посланы дополнительные данные в это поле заносится длина посланных данных в байтах.

Content File

Для запросов, содержащих дополнительные данные, посланные пользователем, этот параметр содержит имя файла, в которое WEB-сервер записывает эти данные. В дальнейшем, пользовательская программа может считать эти данные. Параметр содержит полный путь к файлу данных.

Server Software

Название и версия серверного программного обеспечения, обработавшего запрос и вызвавшего CGI-программу. Формат:

name/version

Server Name

Сетевое имя сервера или псевдоним, необходимый для ссылающихся на себя URL Этот параметр (в комбинации с параметром Server-Port) может быть использован для вычисления полного URL к серверу.

Server Port

Номер порта, по которому работает сервер.

Server Admin

E-mail адрес администратора сервера. Данный параметр необходим для генерации сообщений об ошибках и отправки данных сообщений администратору сервера или для генерации форм с URL « mailto: ».

CGI Version

Версия спецификации CGI. Формат: CGI/версия

Remote Host

Сетевое имя хоста клиента, если доступно. Данный параметр может быть использован для опознавание клиента.

Remote Address

Сетевой (IP) адрес клиента. Данный параметр может быть использован для проверки пользователя если отсутствует сетевое имя.

Authentication Method

Если используется защищенный вызов CGI программы, это протокол-зависимый метод аутентификации, используемый для аутентификации пользователя.

Authentication Realm

Если используется защищенный вызов CGI программы, это протокол-зависимый сервис, используемый для аутентификации пользователя. Список пользователей для полученного вида сервиса проверяется для аутентификации пользователя.

Authenticated Username

Если используется защищенный вызов CGI программы, это имя пользователя, которое клиент использует для аутентификации при доступе к CGI-программе.

Секция [Accept]

Данная секция содержит типы данных, посылаемых клиентом, найденные в заголовке запроса в виде

Accept: type/subtype {parameters}

Если данные параметры присутствуют (например, q=0.100), они передаются как значения параметра Accept. Для каждого типа передаваемых данных заводится свой параметр Accept.

Секция [System]

Данная секция содержит параметры, специфические для Windows реализации CGI:

GMT Offset

Количество секунд, которое необходимо добавить к времени по Гринвичу для вычисления локального времени клиента.

Debug Mode

Данный параметр имеет значение «Yes» если включен режим «CGI/script tracing» на сервере.

Output File

Полный путь к файлу, в который необходимо поместить данные, отсылаемые сервером клиенту после завершения работы программы.

Content File

Полный путь к файл у в котором содержится дополнительная информация, поступающая вместе с запросом.

Секция [Extra Headers]

Данная секция содержит «дополнительные» заголовки, которые включены в запрос в виде «параметр=значение». Сервер должен раскодировать как параметр, так и его значение прежде чем они будут помещены в файл данных CGI.

Секция [Form Literal]

Если запрос от клиента пришел в виде HTTP POST из HTML формы (с типом содержимого application/x-www-form-urlencoded или multipart/form-data ), то сервер раскодирует данные из формы и поместит их в секцию [ Form Literal ].

Для URL-кодированных данных формы, строка передаваемых параметров выглядит как «параметр=значение& параметр= значение&...», где значения находятся в url-кодированном формате. Сервер разделяет «параметр=значение» по символу «& », затем разделяет собственно «параметр» и «значение», декодирует «значение» и помещает результат в виде «параметр=раскодированное_значение» в секцию [ Form Literal ].

Для многостраничных данных строка данных представляется в многостраничном MIME формате, где каждое поле представлено как отдельная часть (файл). Сервер декодирует имена и значение каждой части и размещает их в формате «параметр=значение» в секции [ Form Literal ].

Если форма содержит какие-либо элементы SELECT MULTIPLE, то будет создано несколько строк с вида «параметр=значение» с одинаковым именем «параметра». В этом случае генерирует нормальную строку «параметр=значение» для первого встречающегося элемента, а каждый следующий представляет в виде «параметр_X=значение», где «X» — увеличивающийся счетчик.

Секция [Form External]

Если размер декодированной строки превышает 254 символа или декодированная строка содержит управляющие символы, такие, как перевод строки, возврат каретки, двойные кавычки и т.д., то сервер помещает данное значение в отдельный временный файл, а в секцию [ Form External ] помещает строку в виде:

параметр=путь длина

где путь — это полный путь и имя временного файла, содержащего декодированное значение параметра, а длина — длина в байтах этого файла.

Секция [Form Huge]

Если общая длина строки с кодированными параметрами превышает 65, 535 байт, то сервер не выполняет декодирование, а оставляет данный в Content File, а в секцию [ Form Huge ] помещает строки в виде:

параметр=смещение длина

Где смещение — это смещение от начала Content File по которому находится требуемый параметр, а длина — длина в байтах значения выбранного параметра. Вы можете использовать смещение для выполнения поиска начала значения выбранного вами параметра и использовать длину для чтения значения выбранного параметра. Не забывайте, что если параметр закодирован, то вам необходимо раскодировать его перед использованием.

Секция [Form File]

Если запрос пришел в виде multipart/form-data, то он может содержать один или несколько загруженных с клиента файлов. В этом случае каждый загруженный файл размещается в специальном временном файле, а в секции [ Form File ] строки имеют тот же формат, что и секции [ Form External ]. Каждая строка параметра в этом случае выглядит так:

параметр=[полный_путь_к_файлу] длина тип ссылка [имя_файла] где полный_путь_к_файлу — это путь к временному файлу, содержащему загруженный файл, длина — длина в байтах загруженного файла, тип — тип MIME загруженного файла, ссылка — способ кодировки загруженного файла и имя_файла — исходное название загруженного файла. Использование квадратных скобок обязательно, поскольку имя файла и путь могут содержать символы пробела.

Пример декодированных значений формы

В данном примере форма содержит небольшое поле, SELECT MULTIPLE с 2-я небольшими секциями, поле длиной 300 символов, поле, содержащее специальные символы и поле длиной 230KB.

[Form Literal]

smallfield=123 Main St. #122 multiple=first selection multiple_1=second selection [Form External]

field300chars=C: \TEMP\HS19AF6C.000 300 fieldwithlinebreaks=C: \TEMP\HS19AF6C.001 43 [Form Huge] field230K=C: \TEMP\HS19AF6C.002 276920

Обработка результата

CGI программа возвращает результат работы, отвечающий (явно или неявно) целям запроса. Сервер кодирует результат работы в соответствии со стандартом HTTP и использует HTTP для отправки результата клиенту.

Это означает, что сервер добавляет необходимый HTTP заголовки в сообщение, формируемое CGI программой.

Результат работы CGI программы состоит из двух частей: заголовка и тела сообщения. Заголовок состоит из одной или более строк текста, отделенных от тела пустой строкой. Тело сообщения содержит данные, представленные в MIME формате, указанном в заголовке.

Сервер не изменяет тело документа, что означает, что сервер передает сформированный CGI программой ответ «как он есть».


Поделиться:



Популярное:

  1. VII.2. Процедура публичной защиты дипломной работы
  2. Алгоритм выполнения процедуры
  3. Апелляция может быть подана по вопросам соблюдения процедуры защиты ВКР.
  4. Блок-схема процедуры для создания произвольного многоугольника.
  5. В основе реализации проекта в среде VBA лежит понятие модуля. Модуль – это набор описаний и процедур на языке VBA, собранных в одну программную единицу.
  6. В подавляющем большинстве случаев, «закаливающие процедуры» не приносят ребенку ни пользы, ни вреда, но оказывают огромную пользу нервной системе родителей.
  7. В чем проявляется эффект от процедуры Бразилиан Блоаут?
  8. В-13. Административные процедуры как действия юридического характера: понятие, принципы осуществления, правовое регулирование.
  9. В-14. Участники административных процедур: их права и обязанности. Подведомственность административных процедур
  10. Виды процедур, применяемых в деле о банкротстве
  11. ВНИМАНИЕ: процедура REJECT TAKE OFF (RTO)
  12. Возможности пакета STATGRAFIC при однофакторном прогнозировании


Последнее изменение этой страницы: 2017-03-03; Просмотров: 486; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.045 с.)
Главная | Случайная страница | Обратная связь