明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

使用Perl開發(fā)Internet/Intranet應(yīng)用之二(5)

[摘要]----發(fā)送郵件:可通過調(diào)用系統(tǒng)命令實(shí)現(xiàn),如system"mailxzyr\@gznet.com< a.txt"或exec"mailxzyr\@gznet.com< a.txt"。(a.txt為要發(fā)送的郵件內(nèi)容,"\"是取消@...
----發(fā)送郵件:可通過調(diào)用系統(tǒng)命令實(shí)現(xiàn),如system"mailxzyr\@gznet.com< a.txt"或exec"mailxzyr\@gznet.com< a.txt"。(a.txt為要發(fā)送的郵件內(nèi)容,"\"是取消@特殊字符的含義)前者系統(tǒng)命令運(yùn)行完后,會(huì)繼續(xù)執(zhí)行下面的語句;而后者調(diào)用結(jié)束后,整個(gè)程序就會(huì)結(jié)束,原來的perl程序也不能繼續(xù)執(zhí)行。故一般后者通常放在程序最后一行執(zhí)行。
----6Server與Client傳遞數(shù)據(jù)的方法

----很多人都知道由client傳送數(shù)據(jù)到server可通過下面兩種方法,

1)< formmethod="GET/POST"
action="http://10.0.0.1/Script/a.pl" >
< inputtype="hidden"name="a"value="1" >
< inputtype="hidden"name="b"value="2" >
< inputtype="submit"name="submit"value="Go" >
< /form >

2)< a >
CGI< /a >


----結(jié)果也是一樣的;但卻很少有人會(huì)去想這兩種方法傳輸數(shù)據(jù)時(shí)用的是哪種方式。其實(shí),前者采用的方式在method中設(shè)置可以是GET也可以是POST,而后者采用的則是GET方式。GET與POST的區(qū)別在于,如果以GET方式傳輸,所帶參數(shù)附加在CGI程式的URL后直接傳給server,并可從server端的QUERY_STRING這個(gè)環(huán)境變量中讀。蝗绻訮OST方式傳輸,則參數(shù)會(huì)被打包在數(shù)據(jù)報(bào)中傳送給server,并可從CONTENT_LENGTH這個(gè)環(huán)境變量中讀取出來。還有一種情況是,你用的是GET方式,但傳送的參數(shù)是路徑,如:

----< ahref="/cgi-bin/a.pl/usr/local/bin/pine" >CGI< /a >

----這時(shí)所傳遞的參數(shù)"/usr/local/bin/pine"存放在PATH_INFO這個(gè)環(huán)境變量中。環(huán)境變量的讀取方式為$str=$ENV{'QUERY_STRING'};

----有時(shí)候我們非常希望能記錄下訪問我們頁(yè)面的用戶所用的瀏覽器是什么?名字、地址又是什么?這時(shí)候我們就要借助server端的一系列環(huán)境變量了。下面列出其它一些常用的環(huán)境變量。

SERVER_NAMEserver的機(jī)器名稱或IP地址
SERVER_PORTserver正在運(yùn)行的端口號(hào)
REQUEST_METHOD發(fā)出request的方法(GET/POST/HEAD)
SCRIPT_NAME程式被調(diào)用的路徑,如:cgi-bin/a.pl
REMOTE_HOST發(fā)出request請(qǐng)求的遠(yuǎn)端機(jī)器(client)的名稱
REMOTE_ADDR發(fā)出request請(qǐng)求的遠(yuǎn)端機(jī)器(client)的IP地址
REMOTE_IDENT發(fā)出request的使用者名稱(如是撥號(hào)上網(wǎng),則為用戶
ID),當(dāng)NCSAIdentityCheck為enabled,而且client
機(jī)器支持RFC931時(shí),該變量有效
CONTENT_TYPE數(shù)據(jù)的MIME型別,如:"text/html"
HTTP_ACCEPTclient可以接受的MIME型別列表
HTTP_USER_AGENTclient發(fā)出request的瀏覽器類型
HTTP_REFERER在讀取CGI程式之前,client所指的文本URL

----以上環(huán)境變量并非所有webserver都支持,需視具體情況而定,建議使用之前先進(jìn)行測(cè)試。

----下面有一個(gè)例子,作用是把訪問本頁(yè)面的客戶的ip地址和所用的瀏覽器類型記錄并顯示出來。

print"HTTP/1.0200OK\n";
print"Content-Type:text/html\n\n";

print"< HTML >\n";
print"< HEAD >\n";
print"< TITLE >test< /TITLE >\n";
print"< /HEAD >\n";
print"< BODY >\n";
print"YourIPAddressis$ENV{'REMOTE_ADDR'}.\n";
print"YourBrowseis$ENV{'HTP_USER_AGENT'}.\n";
print"< /BODY >\n";
print"< /HTML >\n";