利用CGI方式實現Web查詢 (轉)

amyz發表於2007-11-10
利用CGI方式實現Web查詢 (轉)[@more@]  利用CGI方式實現查詢

dbr--&gt一CGI簡述?
公共閘道器介面(CGI)是一種標準,它規定了Web其它可(CGI程式)的介面標準。CGI程式透過Web伺服器與執行Web伺服器呼叫其它可執行程式互動,它接受Web傳送給Web伺服器的資訊,並進行處理,然後將結果再送回給Web伺服器及Web瀏覽器。CGI程式可以用任何語言編寫,如、、C、等,用C語言編寫的CGI程式具有速度快、性高等特點。CGI程式通常用於加入查詢機制、搜尋機制、互動式應用及其它一些應用。?
CGI介面標準包括輸入、環境變數、標準輸出三部分,CGI程式可以透過標準輸入(stdin)從Web伺服器得到輸入資訊,例如從FORM中得到資料,這就是常用的POST方法。由於不同的操作採用了不同的資訊機制,其引數傳遞的處理過程也有差別,在與DOS中,環境資訊反映著本級程式執行時的某些系統狀況,可用於父程式與子程式間的資訊傳遞,CGI正是透過設量環境變數在伺服器與客戶機間傳遞資料的,各都提供了許多環境變數,它們定義了程式的執行環境,應用程式可以存取它們。Web伺服器和CGI介面也設定了一些環境變數用以傳遞一些重要的引數。CGI程式透過標準輸出(stdout)將輸出資訊傳送給Web伺服器,傳送給伺服器的資訊可以是HTML文字也可以是純文字。本文將利用C語言編寫一個CGI應用程式——學生成績查詢系統,並分析了CGI程式設計的方法、過程、技巧。?

二、成績查詢系統介紹?
一個在WWW環境下的學生成績公佈欄必將成為日後各類成績釋出的主要手段,每位學生交將有自己的密碼,所以不必擔心成績上網之後的保密性。任何學生以任何形式上網進入本站點的成績查詢系統之後,只要輸入自己的系列、班別、學號及密碼,便可以利用這個學生績查詢系統查詢自己的成績,該設計思路與系統不僅適合各類高校內部的成績釋出,也適合於全國高考、統考等大規模考試的成績釋出。本文介紹的只是一個功能單一的查詢系統,若需完善還需加入成績維護部分,由成績管理者進行內容維護,包括成績輸入、修改、刪除等功能。?

三、HTML FORM格式部分?
3.1 FORM輸放的分解?
在UNIX系統上,CGI資訊是利用STDIN/STDOUT方式傳輸的,所以若要編寫一個C語言的CGI程式,就必須要了解如何解剖與擷取STDIN的CGI資訊。當提交一個HTMLFORM時,WEB瀏覽器首先對FORM中的資料以名字/值對的形式進行編碼,併傳送給WEB伺服器,然後再由WEB伺服器傳遞給CGI程式,其格式如下:?
NAME1=VALUEL&NAME2=VALUE2&NAME3····?
名字是FORM中定義的INPUT,等標置名字,值是使用者輸入或選擇的標值,在程式中將對其進行分析與解碼,將其分解成一組組的名字/值對,這個過程是透過在輸入流中查詢字元“=”與“&”來完成的,每當找到字元“=”,標誌著一個FORM變數名字的結束,當找到字元“&”,標誌著一個FORM變數值的結束。當名字/值對分解完之後,還須將輸入中的一些特殊字元轉換成相應的ASCII字元,如需將“+”轉換成空格符,將一些特殊字元轉換成ASCII字元,對以上分所分析的分解與轉換過程,在下面的程式中有詳細註明。?
3.2HTML FORM?
成績查詢系統的HTML檔案P.htrnl?
學生成績查詢系統?

學生成績查詢系統

?

系列:?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-981609/,如需轉載,請註明出處,否則將追究法律責任。

相關文章