天天看點

開源C++版本CGI庫CGICC入門 1.      簡介 2.      CGICC組成 3.      CGI輸入處理子子產品類結構 4.      CGI輸入處理子子產品初始化流程 5.      編譯和安裝CGICC 6.      CGICC使用示例

開源C++版本CGI庫CGICC入門 1.      簡介 2.      CGICC組成 3.      CGI輸入處理子子產品類結構 4.      CGI輸入處理子子產品初始化流程 5.      編譯和安裝CGICC 6.      CGICC使用示例

CGICC是一個C++語言實作的開源CGI庫,采用LGPL授權協定,使用較為簡單。

CGICC由兩大部分組成:

1)       CGI輸入處理子子產品

2)       HTML輸出子子產品

開源C++版本CGI庫CGICC入門 1.      簡介 2.      CGICC組成 3.      CGI輸入處理子子產品類結構 4.      CGI輸入處理子子產品初始化流程 5.      編譯和安裝CGICC 6.      CGICC使用示例

CGICC的一類,通常直接在CGI的入口函數,如main函數中定義一個CGICC對象,然後即可使用CGICC提供的各種能力。

提供get系列方法取各環境變量的值。

提花get系列方法取各Cookie的值,并支援set新增或修改Cookie值。

CgiEnvironment内部類,僅供CgiEnvironment使用。

提供通路HTML的Form中的被上傳檔案資訊和資料接口。

提供通路HTML的Form中的非被上傳檔案類的資訊和資料接口。

取URL參數值示例:

// http://127.0.0.1/?param_name=param_value

cgicc::form_iterator iter = cgi.getElement("param_name");

if (iter != cgi.getElements().end())

{

    std::string param_value = iter->getValue();

}

// 也可以這樣做:

std::string param_value = cgi("param_name");

// 除此之外,FormEntry還提供了直接取指定資料類型的參數值,如:getIntegerValue、getDoubleValue

初始化流程是由Cgicc構造函數觸發的,一般可在CGI的main函數中定義一個Cgicc對象:

開源C++版本CGI庫CGICC入門 1.      簡介 2.      CGICC組成 3.      CGI輸入處理子子產品類結構 4.      CGI輸入處理子子產品初始化流程 5.      編譯和安裝CGICC 6.      CGICC使用示例

詳細編譯步驟如下:

1)       将CGICC源代碼包(本文下載下傳的是cgicc-3.2.16.tar.gz)上傳到Linux某目錄(本文将CGICC源代碼包cgicc-3.2.16.tar.gz上傳到/tmp目錄);

2)       登入Linux,并進入目錄/tmp;

3)       解壓CGICC源代碼包cgicc-3.2.16.tar.gz:tar xzf cgicc-3.2.16.tar.gz;

4)       解壓後,會在/tmp下産生一個子目錄cgicc-3.2.16,進入到這個子目錄;

5)       然後執行configure指令(本文指定的安裝目錄為<b>/usr/local/cgicc-3.2.16</b>,可以根據需要設定為其它目錄),以生成Makefile編譯檔案,如果要在共享庫中使用CGICC,請使用下列編譯指令:

./<b>configure</b> --prefix=<b>/usr/local/cgicc-3.2.16</b> <b>CXXFLAGS</b>=-fPIC <b>LDFLAGS</b>=-fPIC

否則,可按如下指令編譯:

./<b>configure</b> --prefix=<b>/usr/local/cgicc-3.2.16</b>

在一些環境上,如果不帶-fPIC編譯靜态庫,使用靜态庫時,就會報連結錯誤。

6)       執行make編譯:make

7)       安裝CGICC庫:make install

8)       為<b>/usr/local/cgicc-3.2.16</b>建立不帶版本号的軟連結:

<b>ln -s</b> <b>/usr/local/cgicc-3.2.16 /usr/local/cgicc</b>

至此,CGICC庫就安裝好了!

開源C++版本CGI庫CGICC入門 1.      簡介 2.      CGICC組成 3.      CGI輸入處理子子產品類結構 4.      CGI輸入處理子子產品初始化流程 5.      編譯和安裝CGICC 6.      CGICC使用示例

頁面效果對應的HTML檔案内容如下

(HTML中的id一般是給前端如js使用的,而name通常是給服務端如CGI使用的):

upload

upload:

form action="/cgi-bin/upload.cgi" method="<b>post</b>"

name="formname"

enctype="<b>multipart/form-data</b>"&gt;