» Главная
eXcode.ru » Статьи » Web
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 2





Ведущий раздела: LedWorm
Описание: Статьи по WEB-технологиям


Подразделы:

XML (5)XSLT (4)Apache (7)
Flash MX для проф. (13)Введение в CGI (6)Введение в HTML (7)
Применение CSS (5)Основы сетей передачи данных (14)Основы локальных сетей (19)

«1» «2» «3» «4» «5» 

Тэг <input> — различные поля ввода
Существует много разновидностей этого тэга, отличающихся параметром type. Перечислю наиболее употребительные из них. В квадратных скобках я буду указывать необязательные параметры, а также параметры, отсутствие которых иногда имеет смысл (будем считать, что параметр nameявляется обязательным, хотя это и не так в силу вышеизложенных рассуждений). Ни в коем случае не набирайте эти квадратные скобки!


Формы
До сих пор из всех полей формы мы рассматривали только текстовые поля и кнопки отправки (типа submit). Давайте теперь поглядим, в каком виде приходят данные и от других элементов формы (а их существует довольно много).


Расшифровка URL-кодированных данных
Если бы в предыдущем примере мы ввели параметры, содержащие, например, буквы кириллицы, то сценарию они бы поступили не в "нормальном" виде, а в URL-закодированном. Пожалуй, ни один сценарий не обходится без функции расшифровки URL-кодированных данных. И это совсем не удивительно. Радует только то, что такую функцию нужно написать один раз, а дальше можно пользоваться ей по мере необходимости.


Передача параметров методом POST
В отличие от метода GET, здесь параметры передаются сценарию не через переменные окружения, а через стандартный поток ввода (в Си он называется stdin). То есть программа должна работать так, будто никакого сервера не существует, а она читает данные, которые вводит пользователь с клавиатуры. (Конечно, на самом деле никакой клавиатуры нет и быть не может, а заправляет всем сервер, который "изображает из себя" клавиатуру.)


Передача параметров методом GET
Тут все просто. Все параметры передаются единой строкой (а именно, точно такой же, какая была задана в URL после .) в переменной QUERY_STRING. Единственная проблема — то, что все данные поступят URL-кодированными. Так что нам понадобится функция декодирования. Но это отдельная тема, пока мы не будем ее касаться.


Передача информации CGI-сценарию

Проблема приема параметров, заданных пользователем (с точки зрения сценария — все равно, через форму или вручную), несколько сложнее. Мы уже частично затрагивали ее и знаем, что основная информация приходит через заголовки, а также (при использовании метода POST) после всех заголовков. Рассмотрим эти вопросы подробнее.


Пример CGI-сценария
Настало время привести небольшой сценарий на Си, который иллюстрирует некоторые возможности, которые были описаны выше (листинг 3.1)


Передача документа пользователю
Вначале рассмотрим более простой вопрос: как программа посылает свой ответ (то есть документ) пользователю.


CGI изнутри
До сих пор мы рассматривали лишь теоретические аспекты CGI. Мы знаем в общих чертах, как и что передается пользователю сервером и наоборот. Однако как же все-таки должна быть устроена CGI-программа (CGI-сценарий), чтобы работать с этой информацией. Откуда она ее вообще получает и куда должна выводить, чтобы переслать текст пользователю.


Метод POST и формы
Что же теперь нужно сделать, чтобы послать данные не методом GET, а методом POST. Нетрудно догадаться: достаточно вместо method=GETуказать method=POST. Больше ничего менять не надо.


«1» «2» «3» «4» «5» 

Имя:

Пароль:



Регистрация

Как вы относитесь к AJAX?
Считаю это ЗЛОМ
11% (12)
Бесполезная технология
2% (2)
Мне параллельно
9% (10)
Неплохая технология
20% (23)
Рулез, как я без нее жил!
7% (8)
Я разработчик AJAX-приложений
5% (6)
А что? Хороший футбольный клуб!
12% (14)
Я в танке!!!
34% (38)

Проголосовало: 113
В 3 часа ночи она тихо прокралась в соседнюю комнату. Разбила 17 дюймовый монитор, дискеты залила клеем, системный блок выбросила в окно 12 этажа, принтер утопила в ванне. Потом она вернулась в теплую пастель и прижалась к плечу нечего неподозревающего спящего мужа. Жить ей осталось не больше 3 часов.
Рейтинг: 8/10 (4)
Посмотреть все анекдоты