利用boa服務器測試arm開發板上的cgi和html聯合編程的小例程。很簡單,但是當時覺得很有意思。在這里給大家展示一下,高手飄過。

在ubuntu下安裝boa測試環境,即先在本地搭建一個boa的網頁服務器。apt-get install boa。稍作配置即可。我的Boa按照默認配置www網頁放在/var/www目錄,而cgi腳本放在/usr/lib/cgi-bin目錄
下面以一個示例較少cgi和html的配合使用
<html><head><title>Title of page</title></head>
<body><form ACTION="cgi-bin/mult.cgi">
#這里指示cgi腳本的路徑<P>請在下面填入乘數和被乘數,按下確定后可以看到結果。
<INPUT NAME="m" SIZE="5" ><INPUT NAME="n" SIZE="5" ><BR><INPUT TYPE="SUBMIT" values="確定"></form ></body>
</html>
將文件該名稱為Index.html放在www目錄
而mult.cgi代碼如下:
#include <stdio.h> #include <stdlib.h> int main(void) { char *data; long m,n; printf("Content-Type:text/html;charset=utf-8\n\n"); printf("<html>\n"); printf("<head>\n<title>乘法結果</title>\n</head>\n"); printf("<body>\n");data = getenv("QUERY_STRING"); if(data == NULL) printf("<P>錯誤!數據沒有被輸入或者數據傳輸有問題</p>"); else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2) printf("<P>錯誤!輸入數據非法。表單中輸入的必須是數字。</p>"); else printf("<P>%ld和%ld的成績是:%ld。",m,n,m*n); printf("</body>\n");printf("</html>\n"); return 0; }
使用gcc將以上代碼編譯之后,將可執行文件該名稱為mult.gci,放 /usr/lib/cgi-bin目錄?可以參考以上代碼,功能就是提供兩個輸入框,用戶輸入之后,點擊確定提交之后,返回計算結果。
一個很值得關系的問題是用戶瀏覽器的網頁怎么和服務器上的cgi腳本交互,在我們點擊提交之后,會發現在瀏覽器的地址欄有下面的字樣:

mult.cgi?m=254&n=321這就是瀏覽器向服務器傳遞的數據,m=254 n321,上述寫法是標準格式。