Технология разработки web-приложений, страница 16

При разработке CGI-приложения важно знать не только метод передачи строки параметров, но и технологию ее получения в CGI-приложении. В зависимости от метода передачи различаются и методы получения строки параметров:

- при использовании метода GET строка параметров передается CGI-приложению через переменную окружения QUERY_STRING;

- при использовании метода POST строка параметров передается CGI-приложению через стандартный поток ввода консольного приложения. Длина строки в этом случае определяется через переменную окружения CONTENT_LENGTH.

Считывание строки параметров при использовании метода GET реализуется функцией, возвращающей значение переменной окружения с заданным именем. Для этого можно использовать следующую API-функцию:

AnsiString__fastcall GetEnvironmentVariable(const AnsiString Name);

Здесь Name - имя переменной окружения.

Считывание строки параметров при использовании метода POST происходит из стандартного потока ввода консольного приложения. При этом следует считывать именно такое число символов, какое содержится в передаваемой строке. Попытка прочитать больше символов, чем есть, приведет к "зависанию" приложения. Если же считать не все символы, то часть информации будет потеряна. Для чтения данных из стандартного потока ввода можно использовать стандартную процедуру scanf языка С. Количество символов, подлежащих чтению, передается через переменную окружения CONTENT_LENGTH, значение которой определяется с помощью функции GetEnvironmentVariable.

Перед получение строки параметров обычно проверяется, какой метод передачи информации использован. Знание метода обеспечит правильность считывания передаваемой информации в любом случае. Название метода содержится в переменной окружения REQUEST_METHOD, значение которой определяется с помощью функции GetEnvironmentVariable.

Программный код CGI-приложения GetPostTest, позволяющего проверить используемый метод передачи информации и проконтролировать данные, набранные пользователем в полях ввода и переданные на WWW-сервер, приведен ниже. Приложение GetPostTest возвращает пользователю HTML-документ, в котором содержится сформированная web-сервером строка параметров, принятая этим приложением: