Swart Bob
Шрифт:
{$ELSE}
P := GetDosEnvironment;
{$ENDIF}
while P^ <> #0 do
begin
FDosEnvList.Add(StrPas(P));
Inc(P, StrLen(P)+1) { Fast Jump to Next Var }
end;
end {Create};
destructor TBDosEnvironment.Destroy;
begin
FDosEnvList.Free;
FDosEnvList := nil;
inherited Destroy
end {Destroy};
procedure TBDosEnvironment.DoNothing(const Value: StringList);
begin
end {DoNothing};
function TBDosEnvironment.GetDosEnvCount: Word;
begin
if Assigned(FDosEnvList) then
Result := FDosEnvList.Count
else
Result := 0;
end {GetDosEnvCount};
function TBDosEnvironment.GetDosEnvStr(const Name: String): String;
var
i: Integer;
Tmp: String;
begin
i := 0;
Result := '';
if Assigned(FDosEnvList) then while i < FDosEnvList.Count do
begin
Tmp := FDosEnvList[i];
Inc(i);
if Pos(Name,Tmp) = 1 then
begin
Delete(Tmp,1,Length(Name));
if Tmp[1] = '=' then
begin
Delete(Tmp,1,1);
Result := Tmp;
i := FDosEnvList.Count { end while-loop }
end
end
end
end {GetDosEnvStr};
end.
Здесь список переменных среды (предоставленный Deepak Shenoy), которые доступны для CGI программ. Даже ISAPI программы могут использовать эти переменные:
| Environment Variable | Purpose/Meaning/Value |
|---|---|
| GATEWAY_INTERFACE | Версия CGI для которой скомпилирован web сервер |
| SERVER_NAME | IP адрес сервера или имя. |
| SERVER_PORT | Порт на сервере, которые принимает HTTP запросы. |
| SERVER_PROTOCOL | Имя и версия протокола, используемая для обработки запросов. |
| SERVER_SOFTWARE | Имя (и обычно версия) программного обеспечения сервера. |
| AUTH_TYPE | Схема проверки прав используемая сервером (NULL, BASIC) |
| CONTENT_FILE | Файл используемый для передачи данных CGI программе (только Windows HTTPd/WinCGI). |
| CONTENT_LENGTH | Количество байтов переданное на стандартный вход (STDIN) как содержимое POST запроса. |
| CONTENT_TYPE | Тип данных переданных на сервер. |
| OUTPUT_FILE | Имя файла для результата (только Windows HTTPd/WinCGI). |
| PATH_INFO | Дополнительный, относительный путь переданный на сервер после имени скрипта, но до данных запроса. |
| PATH_TRANSLATED | Та же самая информация, но преобразованная из относительного пути в абсолютный. |
| QUERY_STRING | Данные переданные как часть URL, все после символа ? в URL. |
| REMOTE_ADDR | Адрес IP или имя сервера конечного пользователя. |
| REMOTE_USER | Имя пользователя, если используется схема проверки прав. |
| REQUEST_LINE | Полный HTTP запрос представляемый сервером (зависит от сервера). |
| REQUEST_METHOD | Указывает метод передачи данных, как часть URL (GET) или через стандартный ввод STDIN (POST). |
| SCRIPT_NAME | Имя запущенного скрипта. |
Немного еще дополнительной, но важной информации. Немного об переменных среды, которые особо важны для обработки запроса, и небольшое описание по обработке стандартных CGI приложений:
REQUEST_METHOD – указывает, как посланы данные, как POST или как GET метод.
QUERY_STRING – если используется GET
CONTENT_LENGTH – если мы используем POST, то мы должны прочитать "CONTENT_LENGTH" символов со стандартного ввода (которые оканчиваются "Query", подобно QUERY_STRING при использовании метода GET).