獲取CGI環境變數

2021-08-06 07:22:52 字數 3230 閱讀 2985

1.cgi環境變數簡介

cgi程式繼承了系統的環境變數,

cgi的環境變數,在

cgi程式在啟動時初始化,結束時銷毀,當乙個

cgi程式不是被

伺服器呼叫時,其環境變數基本是系統的環境變數。當屬於

伺服器呼叫時,他的環境變數就會多了以下關於

伺服器、客戶端、

cgi傳輸過程等專案。

cgi相關的環境變數有三種,與請求相關的環境變數、與伺服器相關的環境變數,以及與客戶端相關的環境變數。

2.下面列舉一些環境變數

環境變數意義

server_name 

cgi指令碼執行時的主機名和

ip位址.

server_software 

你的伺服器的型別如: cern/3.0 或

ncsa/1.3.

gateway_inte***ce 

執行的cgi版本

. 對於

unix

伺服器,

這是cgi/1.1.

server_protocol 

伺服器執行的http協議

. 這裡當是

伺服器執行的tcp口,通常

web伺服器是

80.

request_method 

post 或

get,

取決於你的表單是怎樣遞交的.

瀏覽器能直接接收的content-types, 可以有

http accept header定義.

遞交表單的瀏覽器的名稱、版本

和其他平台性的附加資訊。

遞交表單的文字的 url,不是所有的瀏覽器都發出這個資訊,不要依賴它

path_info 

附加的路徑資訊, 由瀏覽器通過

get方法發出.

path_translated 

在path_info中系統規定的路徑資訊.

script_name 

指向這個cgi指令碼的路徑

, 是在

url中顯示的(如

, /cgi-bin/thescript).

query_string 

指令碼引數或者表單輸入項(如果是用

get遞交

). query_string

包含url

中問號後面的引數.

remote_host 

遞交指令碼的主機名,這個值不能被設定.

remote_addr 

遞交指令碼的主機ip位址.

remote_user 

遞交指令碼的使用者名稱. 如果伺服器的

authentication

被啟用,這個值可以設定。

remote_ident 

如果web伺服器是在

ident (

一種確認使用者連線你的協議)執行

, 遞交表單的系統也在執行

ident,

這個變數就含有

ident

返回值.

content_type 

如果表單是用post遞交

, 這個值將是

在上載檔案的表單中

, content-type

是個 multipart/form-data.

content_length 

對於用post遞交的表單

, 標準輸入口的位元組數.

3.獲取cgi變數

#include #include #include const  std::string env=

;int get_cgi_env()

else

std::cout<<"";

std::cout<<"\n";

} std::cout<<"";

std::cout<<"\n";

std::cout<<"\n";

//std::cout<<"\n";

return 0;

}int main()

g++ 2.cpp -o get_cgi_env -g

拷貝可執行檔案到http伺服器的cgi-bin目錄下

瀏覽器輸入

瀏覽器輸出

CGI 環境變數

環境變數 意義 server name cgi指令碼執行時的主機名和ip位址.server software 你的伺服器的型別如 cern 3.0 或 ncsa 1.3.gateway inte ce 執行的cgi版本.對於unix伺服器,這是cgi 1.1.server protocol 伺服器執...

CGI 環境變數

環境變數意義 server name cgi指令碼執行時的主機名和ip位址.server software 你的伺服器的型別如 cern 3.0 或 ncsa 1.3.gateway inte ce 執行的cgi版本.對於unix伺服器,這是cgi 1.1.server protocol 伺服器執行...

CGI 環境變數

環境變數 意義 server name cgi指令碼執行時的主機名和ip位址.server software 你的伺服器的型別如 cern 3.0 或 ncsa 1.3.gateway inte ce 執行的cgi版本.對於unix伺服器,這是cgi 1.1.server protocol 伺服器執...