Чтение онлайн

ЖАНРЫ

Linux и UNIX: программирование в shell. Руководство разработчика
Шрифт:

<A href="#" >here</A>

</CENTER>

<H2>

<HR>

</HTML>

Ниже приведен сценарий printenv.cgi, выводящий на печать значения параметров среды. В сценарии используется команда env. Тег <PRE> применяется для сохранения форматирования (вывода табуляции и пробелов).

$ pg printenv.cgi

#!/bin/sh

# printenv.cgi

# вывод на печать настроек Web–сервера с помощью команды env

echo "Content-type: text/html"

echo ""

echo "<HTML><PRE>"

env

echo "</PRE></HTML>"

Рис. 29.5. Страница, включающая ссылку для просмотра переменных среды

На рис. 29.5 показано, как выглядит страница с добавленной ссылкой.

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

Рис. 29.6. Страница, отображающая значения текущих переменных

29.4.6. Другие общие переменные среды

В табл. 29.2 представлены наиболее часто применяемые переменные среды cgi. Значения некоторых из этих переменных могут быть просмотрены с помощью команды env либо set.

Таблица 29.2. Общие переменные cgi Web–сервера

DOCUMENT ROOT

Основной каталог Web–сервера, куда загружаются документы

GATEWAY_INTERFACE

Редакция cgi

HTTP_ACCEPT

Другие подтвержденные типы MIME

HTTP_CONNECTION

Предпочитаемое подключение HTTP

HTTP_HOST

Имя локального хост–компьютера

HTTP USER AGENT

Клиентский броузер

REMOTE_HOST

Удаленный хост–компьютер

REMOTE_ADDR

[3]

IP–адрес удаленного хост–компьютера

REQUEST_METHOD

Метод, используемый для передачи информации

SCRIPT FILENAME

Абсолютное имя пути сценария cgi

SCRIPT_NAME

Относительное имя пути сценария cgi

SERVER_ADMIN

Адрес электронной почты Web–администратора

SERVER_NAME

Хост–имя, DNS либо IP–адрес сервера

SERVER_PROTOCOL

Протокол, используемый для реализации соединения

SERVER_SOFTWARE

Наименование программного обеспечения Web–сервера

QUERY_STRING

Передаваемые данные из метода GET

CONTENT_TYPE

Тип MIME

CONTENT_LENGTH

Количество байтов, передаваемых с помощью метода post

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

$ pg evncgi.cgi

#!/bin/sh

#envcgi.cgi

#вывод на печать настроек web–сервера с помощью команды env

echo "Content-type: text/html"

echo ""

echo "<HTML><PRE>"

echo "CGI Test ENVIRONMENTS"

echo "SERVER_SOFTWARE=$SERVER_SOFTWARE"

echo "SERVER_NAME=$SERVER_NAME"

echo "GATEWAY_INTERFACE=$GATEWAY_INTERFACE"

echo "SERVER_PROTOCOL=$SERVER_PROTOCOL"

echo "SERVER_PORT=$SERVER_PORT"

echo "REQUEST_METHOD=$REQUEST_METHOD"

echo "HTTP_ACCEPT=$HTTP_ACCEPT"

echo "PATH_INFO=$PATH_INFO"

echo "PATH_TRANSLATED=$PATH_TRANSLATED"

echo "QUERY_STRING=$QUERY_STRING"

echo "SCRIPT_NAME=$SCRIPT_NAME"

echo "REMOTE_HOST=$REMOTE_HOST"

echo "REMOTE_ADDR=$REMOTE_ADDR"

echo "REMOTE_USER=$REMOTE_USER"

echo "AUTH_TYPE=$AUTH_TYPE"

echo "CONTENT_TYPE=$CONTENT_TYPE"

echo "CONTENT_LENGTH=$CONTENT_LENGTH"

echo "</PRE></HTML>"

29.5. Введение в методы get и post

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

После того как пользователь выполнил ввод или выбрал некоторые данные в форме, он может щелкнуть на кнопке send для передачи введенной информации сценарию, в данном случае -cценарию cgi. Как только информация будет введена, "в игру вступают" методы get и post.

29.5.1. Метод get

Для любой формы по умолчанию используется метод get. Это один из методов применяемых для выборки файлов из статических HTML–страниц.

Как только пользователь щелкнет на кнопке submit, информация, которая была выбрана или выбирается пользователем, добавляется к URL сервера в виде закодированной строки. Затем эта закодированная строка присваивается переменной среды сервера, query_string. Переменная request_method также используется для хранения метода формы.

Создание простой формы

Создадим простую форму,_ реализующую ссылку из документа main.shtml на сценарий books.cgi.

Вставьте следующие две строки после последней записи ссылки, которая была создана в файле main.shtml:

<BR> Basic form using GET method <A href="#" >Form1</A>

Теперь введите следующий код и сохраните его в файле books.cgi; не забудьте поместить этот файл в каталог cgi-bin.

$ pg books.cgi

#!/bin/sh

# сценарий books.cgi

Поделиться с друзьями: