利用CGI方式實現Web查詢 (轉)
利用CGI方式實現Web查詢 (轉)[@more@] 利用CGI方式實現查詢
dbr-->一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?
學生成績查詢系統 ?
系列:
dbr-->一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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Elasticsearch 查詢in 和 not in 的實現方式Elasticsearch
- HTML + CSS + JS 利用郵編查詢 API 實現郵編查詢工具HTMLCSSJSAPI
- SSH整合實現分頁查詢(兩種方式)
- java實現Hbase中的查詢(一)Filter方式JavaFilter
- 在CGI中實現session的想法和實現 (轉)Session
- web3.js 互動 geth 實現轉賬餘額查詢功能WebJS
- 利用 Python 爬蟲實現快遞物流資訊查詢Python爬蟲
- 利用樹形查詢實現部分分析函式功能函式
- UltraEdit利用正規表示式查詢(轉)
- decode實現行轉列的查詢
- 利用MySQL的一個特性實現MySQL查詢結果的分頁顯示(轉)MySql
- ISAPI 與CGI 的 比 較 及 其 實 現 (轉)API
- Access查詢實現Mysql的 limit 查詢MySqlMIT
- ASP.NET中利用儲存過程實現模糊查詢ASP.NET儲存過程
- 用ISAPI方式實現Web頁面的自動更新 (轉)APIWeb
- 轉:C++實現的變種二分查詢法(折半查詢)--二叉查詢樹C++
- apache web 中的CGI應用問題(轉)ApacheWeb
- java實現折半查詢。Java
- 查詢演算法集:順序查詢、二分查詢、插值查詢、動態查詢(陣列實現、連結串列實現)演算法陣列
- 對DBGrid 的巧妙用法實現查詢 (轉)
- 微信域名批次檢測 微信域名攔截查詢的實現方式
- Hibernate查詢方式
- Spring Boot 2 實戰:利用Redis的Geo功能實現查詢附近的位置Spring BootRedis
- 利用 DynamicLinq 實現簡單的動態表示式構建查詢
- SSH:hiberate實現資料的查詢(單查詢和全查詢)
- 漏洞利用查詢工具sandi
- 實現Web方式軟交換配置管理系統的研究(轉)Web
- indexdb實現分頁查詢Index
- mysql多表查詢如何實現MySql
- 折半查詢(C++實現)C++
- mysql實現隨機查詢MySql隨機
- 利用Redis cache優化app查詢速度實踐Redis優化APP
- Laravel Query Builder 複雜查詢案例:子查詢實現分割槽查詢 partition byLaravelUI
- web 端展現報表時查詢表單如何實現引數聯動Web
- 如何實現查詢介面的所有實現類
- 關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現遞迴
- 兩種方式實現web html sliderWebHTMLIDE
- #MyBatis多表查詢 #多對一、一對多的兩種實現方式 @FDDLCMyBatis