Шрифт:
<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