Your question:
Does your server populate the $_GET and $_POST vars as expected?
This is the author's reply.
Cheers,
Boris
Hello,
In short this is the code that fills the variables:
void __fastcall
httpServerThread::UnknownCGIOrISAPIServerVariableProc(TWebConnection
*webClient, String Variable, String &AnswerStr)
{
if(Terminated)
return;
httpServerClientClass *httpClient =
(httpServerClientClass*)webClient;
Variable = UpperCase(Variable);
if(Variable == "USER_NAME" || Variable == "AUTH_NAME" || Variable ==
"AUTH_USER")
AnswerStr = httpClient->username;
else if(Variable == "USER_PASSWORD" || Variable == "AUTH_PASSWORD")
AnswerStr = httpClient->password;
else if(Variable == "AUTH_TYPE" || Variable == "HTTP_AUTHORIZATION")
{
if(httpClient->username != "Guest")
AnswerStr = "Basic";
else
AnswerStr = "";
}
else if(Variable == "ACCEPT_CHARSET" || Variable ==
"HTTP_ACCEPT_CHARSET")
AnswerStr = httpClient->RequestAcceptCharset;
else if(Variable == "HTTP_ACCEPT_ENCODING")
AnswerStr = httpClient->RequestAcceptEncoding;
else if(Variable == "HTTP_ACCEPT")
AnswerStr = httpClient->RequestAccept;
else if(Variable == "HTTP_FROM")
AnswerStr = httpClient->GetPeerAddr();
else if(Variable == "HTTP_USER_AGENT")
AnswerStr = httpClient->RequestUserAgent;
else if(Variable == "HTTP_CONTENT_LENGTH")
AnswerStr = IntToStr(httpClient->RequestContentLength);
else if(Variable == "HTTP_CONNECTION")
AnswerStr = httpClient->RequestConnection;
else if(Variable == "HTTP_CONTENT_TYPE")
AnswerStr = httpClient->RequestContentType;
else if(Variable == "HTTP_REFERER")
AnswerStr = httpClient->RequestReferer;
else if(Variable == "HTTP_ACCEPT_LANGUAGE")
AnswerStr = httpClient->RequestAcceptLanguage;
else if(Variable == "ACTIVE_SESSIONS")
{
AnswerStr = IntToStr(HTTPServer->ClientCount);
}
else if(Variable == "APPL_MD_PATH")
AnswerStr = "/NFRoot/" + IntToStr(GetCurrentThreadId()) +
"/" + httpClient->Path;
else if(Variable == "APPL_PHYSICAL_PATH")
AnswerStr = httpClient->LastFilePath;
else if(Variable == "SERVER_SOFTWARE")
AnswerStr = serverString;
else if(Variable == "SERVER_NAME")
{
AnswerStr = httpClient->actualDomain;
if(!AnswerStr.Length())
AnswerStr = httpClient->GetXAddr();
}
else if(Variable == "HTTP_HOST")
{
AnswerStr = httpClient->actualDomain;
if(!AnswerStr.Length())
AnswerStr = httpClient->GetXAddr();
AnswerStr += ":" + httpClient->GetXPort();
}
else if(Variable == "SERVER_PORT")
AnswerStr = HTTPServer->Port;
else if(Variable == "SERVER_VERSION")
AnswerStr = version;
else if(Variable == "INSTANCE_META_DATA" || Variable ==
"INSTANCE_META_PATH")
AnswerStr = "/NFRoot/" + IntToStr(GetCurrentThreadId());
else if(Variable == "PATH_INFO" || Variable == "SCRIPT_NAME")
{
AnswerStr = httpClient->Path;
addForeSlash(AnswerStr);
}
else if(Variable == "URL")
AnswerStr = httpClient->Path;
else if(Variable == "PATH_TRANSLATED" || Variable ==
"SCRIPT_FILENAME")
AnswerStr = httpClient->LastFilePath;
else if(Variable == "HTTP_RAW")
AnswerStr = httpClient->allRawHeader;
else if(Variable == "ALL_HTTP" || Variable == "HTTP_ALL")
{
AnswerStr = httpClient->allRawHeader;
TReplaceFlags flags;
flags << rfReplaceAll;
AnswerStr = StringReplace(AnswerStr, "\r\n", "\0", flags);
}
else if(Variable == "CONTENT_LENGTH")
AnswerStr = httpClient->RequestContentLength;
else if(Variable == "CONTENT_TYPE")
AnswerStr = httpClient->RequestContentType;
else if(Variable == "GATEWAY_INTERFACE")
AnswerStr = "ISAPI/6.0";
else if(Variable == "UNDEFINED")
AnswerStr = Variable;
else if(Variable == "SERVER_PROTOCOL")
AnswerStr = httpClient->Version;
else if(Variable == "REQUEST_METHOD")
AnswerStr = httpClient->Method;
else if(Variable == "REMOTE_ADDR" || Variable == "REMOTE_HOST")
AnswerStr = httpClient->GetPeerAddr();
else if(Variable == "COOKIE" || Variable == "HTTP_COOKIE")
AnswerStr = httpClient->RequestCookies;
else
AnswerStr = "";
}
//---------------------------------------------------------------------------
I am not sure all of you would understand this but here it goes anyway... So
simple, I see no problem!
Regards,
Gorkem Ates