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).