cgic庫的使用

來源:互聯網
上載者:User

很幸運。用C語言寫CGI程式還可以有比較簡單的方式,那就是我們可以藉助使用第三方庫CGIC(CGIC是一個功能比較強大的支援CGI開發的標準C庫,並支援Linux, Unix 和Windows等多作業系統)來編寫,省去了必須自己去遵循CGI規範來碼磚的痛苦,使CGI程式的編寫變的簡單,下面是我第一次使用CGIC庫來寫的第一個CGI程式:
第一步:從cgic官網(http://www.boutell.com/cgic/ 此網站好像不穩定,偶爾能開)上下載cgic庫檔案
第二步:在Dev-C++中建立一個console工程,起名為 cgic1
把cgic.h、cgic.c 拷貝到工程cgic1源碼檔案所在的目錄下,然後改寫main.c如下:
擷取請求中的參數值,我們在提交一個表單(form)時,怎樣把表單內的值提取出來呢。比如下面這個表單:
<form action="cgi-bin/cgic1.cgi" method="POST">
    <input type="text" name="name" />
    <input type="text" name="number" />
    <input type="submit" value="Submit" />
</form>
當out.cgi收到請求時,需要把輸入框“name”和輸入框“number”內的值提取出來,而且不管form中的action是GET還是POST,都要有效。
下面給出範例程式碼(檔案為cgic1.c):
#include <stdio.h>
#include "cgic.h"
#include <string.h>
#include <stdlib.h>
int cgiMain() {
    char name[241];
    char number[241];
    cgiHeaderContentType("text/html");
    fprintf(cgiOut, "<HTML><HEAD>\n");
    fprintf(cgiOut, "<TITLE>My CGI</TITLE></HEAD>\n");
    fprintf(cgiOut, "<BODY>");
    cgiFormString("name", name, 241);
    cgiFormString("number", number, 241);
    fprintf(cgiOut, "<H1>%s</H1>",name);
    fprintf(cgiOut, "<H1>%s</H1>",number);
    fprintf(cgiOut, "</BODY>\n");
    fprintf(cgiOut, "</HTML>\n");
    return 0;
}
上面代碼涉及到的cgic函數,可顧名思義,很簡單不解釋了,比直接用c寫簡潔很多,更詳細的cgic庫用法可上其官網查詢。結果測試回合正常。
註:編譯時間候,出了個錯誤,報指向 cgic.c 中引入的某個標頭檔找不到,還以為windows平台下不能運行cgic或是我下載的版本不對,因為官網打不開,上面的cgic.h、cgic.c是在源碼搜尋網站http://code.ohloh.net/ 下找到的,下載的cgic庫可能被別人改過,後來重新搜尋,下載了另一個cgic庫,編譯通過。
參考http://blog.chinaunix.net/uid-20620288-id-3139686.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.