【原創】嵌入式cgi開發之旅——5
發表於 2009/9/1 20:11:19
用cgic開發c語言的cgi程式
用cgic
庫來開發cgi
程式
cgic
是專門為
cgi開發的乙個
ansi c
庫,封裝了一些c語言
cgi程式設計常用的操作,以及一些字串和環境變數的處理,伺服器提交以後,
cgic
先將環境變數或者是標準輸入中的資料取出進行一定的處理後再交給使用者程式,給c開發
cgiwww.boutell.com
,目前版本號為:
2.05
當然為了熟悉
web程式設計你也可以不使用這個庫,我是無意將重點放在
web程式設計上,所以我用
cgic
,呵呵。
cgi特性:
ü對資料進行語法分析;
ü接收以get
和post
方式傳送的資料;
ü接收上傳檔案以及常規的表單檔案;
ü提供設定和取得
cookies
的函式;
ü用統一的方式處理表單域中的換行;
ü為提取表單資料提供字串、整型、浮點及單選和多選函式;
ü為數字域提供邊界檢查;
ü把cgi
環境變數處理為非空字串載入到
c字串中;
ü提供捕獲
cgi狀態進行除錯的方法
用cgic進行c
語言的cgi
程式開發時,使用者程式必須鏈結到
cgic.c
模組上,我們也可以不把
cgic
編譯為模組,這樣只要將自己編寫的
cgi程式和
cgic.c
和gic.h
一起編譯就可以了。因為所有的
cgi程式都必須進行一些初始化操作,比如分析資料和檢查環境變數等,
cgic
庫提供了自己的
mian()
函式,所以當我們用
cgic
來開發自己的
cgi程式時就不能在使用
main()
函式,而只能使用
cgic
提供的cgimain()
函式來開始自己的程式。
cgic
的安裝很容易:
12.05版本
2、解壓,可以看到整個庫包含的檔案很少,主要的幾個是:
cgic.hcgic
庫標頭檔案;
cgic.ccgic
庫的主要原始碼;
cgictest.ccgic
庫測試檔案;
capture.ccapture
工具,這是用來除錯
cgi程式的工具
3、make cgictest
就可以得到
cgictest.cgi
這個測試檔案,我們將這個檔案拷貝到自己伺服器的
cgi-bin
目錄下,然後在瀏覽器裡訪問這個檔案,如果一切正常的話那麼恭喜你可以正常使用
cgic
庫里。
4、make capture
生成除錯程式,
cgi的除錯是很麻煩的,因為程式執行在伺服器端不能通過偵錯程式來除錯,所以
cgic
庫提供了乙個
capture
程式,用來記錄所有的環境變數的變化,只要更改
capture.c
中cgimain()
中第一行中指定的
cgi環境變數儲存檔案。然後把生成的
capture
放到自己的
cgi目錄下,設定表單的
action
屬性指向
capture
就可以了。當表單提交的時候就會記錄下所有的環境變數的變化並存到檔案中。
嵌入式CGI開發之旅 11
原創 嵌入式cgi開發之旅 11 發表於 2009 9 3 20 18 14 實驗 六 核取方塊組 核取方塊是一種多選框,一次可以選擇多個選項,核取方塊組是多個核取方塊擁有同乙個 name 屬性。1 修改 mycgictest.html 增加一組核取方塊按鈕組,增加到剛才的單選框組下面 核取方塊組 ...
嵌入式CGI開發之旅 9
實驗 四 文字框 文字框允許使用者輸入多行文字,這個通常用來接收較多的使用者輸入,使用者可以使用空格和回車換行等,因為輸入的資料可能超過 1024 位元組,這個表單輸入域的提交一般用 post 方法。1 修改 mycgictest.html 增加乙個文字框,加在使用者輸入名字的下面,如下 所示 yo...
嵌入式CGI開發之旅 CGI環境變數
嵌入式cgi開發之旅 cgi環境變數 web伺服器和cgi fastcgi程式之間交流資訊的主要途徑是環境變數 以及標準輸入輸出流 這裡說的環境變數是指作業系統中的環境變數。windows系統下,path是很常見的乙個環境變數 cgi規範對cgi程式中使用的環境變數名稱及其含義做了具體而明確的規定,...