[Назад] [Дальше] [Оглавление]

      http://www.yoursite.ru/cgi-bin/amstat/htreport?date=DATE&what=WHAT

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

При описании этого модуля подразумевается, что Вы уже имеете установленный WWW сервер и знаете механизмы ограничения доступа к ресурсам сервера по именам/паролям (много информации и ссылок на эту тему есть на http://www.apache.org/ и на http://www.w3.org/). Не забудьте, что для нормальной работы модулю htreprt должны быть предоставлены права пользователя, от имени которого установлен сервер статистики. Это достигается, например, такими операциями:

bash# chown 0.0 htreport
bash# chmod 6511 htreport
bash# ls -l htreport
 520 -r-sr-sr-x  1 root  wheel  522700 Sep 10 18:58 htreport*
Владельцем модуля должен быть root даже в том случае, если сервер статистики установлен под иным именем пользователя - при запуске модуль сам изменит идентификатор пользователя на указанный в конфигурации, но он должен обладать на это правами!

Модуль htreport не имеет средств проверки секретности и определяет имя пользователя из переменной окружения `REMOTE_USER', при условии, что задана переменная окружения `AUTH_TYPE'. Если у Вас есть предложения по усовершенствованию этого механизма - напишите автору.

Затем модуль проверяет способ доступа - переменную окружения `REQUEST_METHOD', ее значение должно быть `GET'; наконец, модуль получает список действий и параметров из переменной окружения `QUERY_STRING'. Параметры состоят из имени и значения, разделенных знаком равенства (без пробелов). Один параметр от другого отделяется символом `&' (амперсэнд). Такой формат записи целиком соответствует спецификации CGI (Common Gateway Interface), что позволяет запускать модуль htreport непосредственно из WEB сервера как CGI-модуль. При этом в переменную окружения `QUERY_STRING' попадет все указанное Вами после знака `?' в URL. Примеры:

http://www.your.site/cgi-bin/amstat/htreport?what=account
http://www.your.site/cgi-bin/amstat/htreport?what=stat&date=-.1

Если переменная окружения `QUERY_STRING' пуста (в URL не было задано аргументов), то предполагается, что она равна `what=total'. В настоящий момент модуль поддерживает только два аргумента:

date

Позволяет сместить текущую дату в указанную. Удобно для вывода статистики за прошлые месяцы. Дата задается в стандартном формате.

what

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

Конфигурационный файл `htreport.cf' должен быть размещеен в домашнем каталоге сервера. Он состоит из текстовых строк; пустые строки и строки, начинающиеся с символа `#' игнорируются. Остальные строки должны состоять из двух полей - названия действия, как оно будет задано в аргументе what и названия формы, в формате принятом при указании имени формы генератору отчетов.

Некоторые имена действий зарезервированы и обязательно должны присутствовать в конфигурационном файле:

baduser

Выводится если заданного пользователя не существует.

default

Выводится, если запрошенное имя действия не найдено.

nouser

Выводится если имя пользователя не задано. Обычно такая ошибка свидетельствует об ошибке в конфигурации Web-сервера - скорее всего имя пользователя не было запрошено и, соответственно, передано в модуль htreport.

total

Выводится если не задано никаких аргументов при вызове модуля htreport. Обычно содержит текущие данные - итоговые значения статистики, лицевого счета и т.п.

Пример:

# Знак равенства не является символом "присвоения", а указывает на то,
# что поиск формы должен производиться в каталоге forms/ домашнего каталога
# сервера.
#
# Обязательно должны присутствовать!
#
baduser =ht/baduser.fm
nouser  =ht/nouser.fm
#
total   =ht/total.fm
account =ht/account.fm
bill    =ht/bill.fm
bill-s  =ht/bill-s.fm
uinfo   =ht/uinfo.fm
#
# А это будет выдаваться хакерам, которые разные иные режимы работы будут
# пробовать :)
#
default =ht/default.fm

Кроме того, смотрите готовый пример конфигурации и формы, поставляемые с сервером.


[Назад] [Дальше] [Оглавление]