59 Часть V. Разработка программ и написание скриптов

Если у вас есть доступ к UNIX-серверу, то вы сможете использовать следующий скрипт для определения системных переменных, поддерживаемых сервером. Кроме того, данный скрипт должен работать на серверах других типов, таких как, например, Microsoft Windows NT Server, если последний будет правильно сконфигурирован для распознавания и исполнения PERL-скриптов.

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

#!/usr/local/bin/peri

Следующая строчка, как уже было описано выше, задает MIME-тип, позволяющий серверу определить, что далее последует HTML-документ.

print "Content-type:text/html\n\n";

Теперь, зная о том, что сервер ожидает получение HTML-документа, выполним посылку списка, каждый элемент которого состоит из имени системной переменной и ее текущего значения. Для реализации этого используем ЦИКЛ foreach.

fо reach $key (keys(%ENV))(

print "\$ENV($key)=\"$ENV($key)\"<br>\n";

И, наконец, дадим инструкцию интерпретатору о том, что CGI-скрипт закончил свою работу.

exit;

(__Совет)

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

Как вы могли видеть из примера, большинство переменных содержит информацию о версиях протоколов или информацию о местоположении, например, IP-адрес клиента или доменное имя сервера. Однако если немного поразмыслить, то некоторым из этих переменных можно найти интересное применение.

Одним из лучших примеров является использование значения переменной HTTP_USER_AGENT. Значение этой переменной определяет имя и номер версии приложения-клиента, которое обычно представляет собой Web-браузер. Как видно из рис. 25.1 для браузера Netscape 4.0 это значение будет иметь

ВИД:Mozilla/4.0 (Win95;I).

Если вы будете знать значение этой переменной для разных браузеров, то станет возможным написание скрипта, который будет предоставлять раз-