設定 EYNY 為首頁  |  加入我的最愛
伊莉討論區
熱門搜尋: 海角七號  觸手  馬景濤  籃球火  死神娘之姊姊懷孕  豔母  郭冠櫻  海角7號 


休閒聊天
學術文化
感情感性
興趣交流
家庭事務
旅遊交流
飲食交流
家族門派
貼圖分享
動漫交流
音樂世界
美容打扮
潮流資訊
影視娛樂
電玩遊戲
連線遊戲
網絡遊戲
交易廣場
下載分享
BT下載區
CB下載區
電腦資訊
數碼產品
手機交流
網站事務
體育運動
時事新聞
上班一族
博彩娛樂
成人話題


 
標題: [轉載] CGI簡明教程
snnn
該用戶已被刪除









發表於 2006-12-16 11:22 AM 
伊莉遊戲

與請求相關的環境變量

[顯示] [隱藏]
每次服務器受到的請求都不可能是一樣的。這意味著有許多CGI程序必須注意的信息。這些與請求相關的信息包含有用戶調用的信息,用戶如何發送請求,以及作為請求的一部分傳送了多少(什麼)信息。這些對你的程序來說是非常重要的,因此我們將化些時間詳細地討論一下其中的一些變量。特別是下面寫出的三個變量。這三個變量相當重要。
REQUEST_METHOD
QUERY_STRING
CONTENT_LENGTH
你必須熟悉這三個變量,因為它們用來表示數據是如何送到CGI程序的;然後你所要要做的事情就是在這三個變量裡取出數據,進行下一步的編程。其他的一些變量的用處很多,你可以了解你的競爭對手正在調用你的程序,你可以辨別用戶是否注冊,或者你可以設置連接到你的CGI程序以便要求附加路徑信息包含在請求之中----因此你不必猜測你的用戶正在你的服務器的哪個頁面上。
AUTH_TYPE 服務器用的確認模式
CONTENT_FILE 含有CGI程序的數據文件
CONTENT_LENGTH POST請求中向標准輸入(STDIN)發送的字節數
CONTENT_TYPE 被發送數據的類型
PATH_INFO CGI程序的附加路徑
PATH_TRANSLATED PATH_INFO對應的絕對路徑
QUERY_STRING 傳送給CGI程序的URL的問號(?)之後的那一部分
REMOTE_ADDR 最終用戶的IP或主機名
REMOTE_USER 如果用戶合法,則是用戶的組名
REQUEST_LINE 發送給服務器的完整URL請求
REQUEST_METHOD 作為HTTP的一部分請求而傳送數據的方法,比如get。
SCRPT_NAME 運行的腳本名字

頂部
snnn
該用戶已被刪除









發表於 2006-12-16 11:24 AM 
維克斯討論區

一個實例:調查表

對於本周的程序----選票程序,我不想多說什麼。我只是想在本程序內教給大家如何使用perl語言或C語言如何處理字符串的實例。讓我們先看看代碼:
頁面文件--pote.html
<HTML>
<TITLE>投票程序</TITLE>
<h1>投票程序</h1>
<FORM METHOD="post" ACTION="/cgi-bin/vote.pl">
一.你喜歡誰?<br>
<input type="radio" name="idol" value="A" checked>張德陪<br>
<input type="radio" name="idol" value="B">阿加西<br>
<input type="radio" name="idol" value="C">桑普拉斯<br>
<input type="radio" name="idol" value="D">貝克<br>
<input type="radio" name="idol" value="D">顧懿<br>
<input type="submit" value="執行">
<input type="reset" value="取消">
</form>
查詢<a href="/cgi-bin/vote.pl?command=view">選舉投票結果</a>
</html>
CGI程序:--vote.pl
#!perl
print"Content-type:text/html\n\n";
print"<titel>投票系統</title>";

if($ENV{'REQUEST_METHOD'}eq"POST"){
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
}elsif($ENV{'REQUEST_METHOD'}eq"GET"){
$buffer=$ENV{'QUERY_STIRNG'};
}

@pairs=split(/&/,$buffer);
foreach $pair(@pairs){
($name,$value)=split(/=/,$pair);
$value=~tr/+//;
$value=~s/%([a-f A-F 0-9][a-f A-f 0-9])/pack("C",hex($1))/eg;
$FORM{$name}=$value;}

$filename="/vote.dat";
%NAME=("A","張德陪","B","阿加西","C","桑普拉斯","D","貝克","E","顧懿");

if($ENV{'REQUEST_METHOD'}eq"POST"){
print"Content-type:text/html\n\n";
print"<titel>投票系統</title>";
print"<h1>投票系統的例子</h1>";
open(FILE,"<$filename")||die"不能打開文件,請和管理員聯系\n";

for($i=0;$i<2;$i++){
$file[$i]=<FILE>;
$file[$i]=~s/\n$//;
}
close(FILE);

@item=split(/:/,$file[0]);
@vote=split(/:/,$file[1]);

for($i=0;$i<@item;$i++){
if($FORM{'idol'}eq$item[$i]){
$vote[$i]++;
last;
}
}
open(FILE,">filename")||die"Can't Open the file";
$item=join(":",@item);
$vote=join(":",@vote);
pirnt FILE "$item\n";
print FILE "$vote\n";

close (FILE);

print"<h2>您是投票給$NAME{$FORM{'idol'}},謝謝您的選票!<h2>";
print"查詢<a href=\"/cgi-bin/vote.pl?command=viem\">投票結果系統</a>";

}

if($FORM{'command' [ 瀏覽完整內容請先註冊或登入會員。]

頂部
 




當前時區 GMT+8, 現在時間是 2008-10-7 04:49 AM

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.076916 second(s), 6 queries , Gzip enabled

清除 Cookies - 聯繫我們 - 廣告查詢 [威旭代理] - 伊莉討論區 - Archiver
重要聲明:本討論區是以即時上載留言的方式運作,伊莉討論區對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。伊莉討論區有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。