linux apache c cgi總結3表單處理

2021-06-16 12:26:17 字數 2638 閱讀 5068

簡單的入門程式

下面我們來看乙個簡單的cgi程式,同樣也是任何程式設計的經典入門程式——向螢幕列印「hello world!」

#include

#include

#include

int main(void)

/*下面這行是必須要的,無論什麼程式語言寫的cgi程式都必須首先列印content-type:text/html,可以看見前面那個指令碼在開始的地方也有一行類似的echo"content-type:text/plain;charset=iso-8859-1",完了之後必須緊跟乙個空行,否則伺服器解析不了你的程式,在這兒後面跟了兩個'\n'其中第乙個'\n'是printf的換行符,第二個'\n'就是我們輸出的空行*/

printf("content-type:text/html;charset=gb2312\n\n");

printf("hello world!");

return 0;

儲存為helloworld.c同名編譯後在瀏覽器的執行結果如下:

檢視網頁原始檔後發現只顯示「hello world!」對於我們的printf等c語言元素和我們輸出的第一行都是不可見的。現在我們將它稍作一下修改讓他以正兒八經的html網頁顯示。

/*helloworld.c*/

#include

#include

#include

int main(void)

printf("content-type:text/html;charset=gb2312\n\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n");

printf("\n"); /*html中的字型屬性*/

printf("hello world!\n");

printf("\n");

printf("

\n");

return 0;

同名編譯後執行結果如下:

網頁原始檔如下:

hello world!

可以發現除了第一行外printf中的內容全部輸出了,而且html標記依然管用。

表單處理

其實cgi程式主要是用來處理表單的提交內容的,所以現在開始來學習用cgi處理表單資料先來看乙個小例子,html頁面的輸入框中輸入輸入兩個詞然後再列印出來。

html(index.htm)程式如下:

strcpy(tem[i],p);

i++;

printf("the frist word is %s

",tem[1]);/*列印第乙個詞*/

printf("the second word is %s

",tem[3]);/*列印第二個詞*/

return 0;

執行後的效果如圖:

post的話,cgi程式要這樣改:

#include

#include

#include

int main(void)

int i=1,len;

char *p,*data;

char tem[4][50];

printf("content-type:text/html;charset=gb2312\n\n");

/*從環境變數中讀取表單提交的內容的位元組數這是post得用法*/

data = getenv("content_length");

len = atoi(data);/*將位元組數轉為整型*/

fgets(data,len+1,stdin);/*從標準輸入獲得表單內容,len+1是為了給表單內容加上'\0'*/

printf("data=%s

\n",data);/*列印表單內容*/

/*將表單提交的內容截斷拿取有用的*/    

p = strtok(data,"=&");/*strtok函式為字串截斷函式*/

strcpy(tem[0],p);

while((p=strtok(null,"=&"))){

strcpy(tem[i],p);

i++;

printf("the frist word is %s

",tem[1]);/*列印第乙個詞*/

printf("the second word is %s

",tem[3]);/*列印第二個詞*/

return 0;

效果圖如下,可以看見data的內容是一樣的,但在url後面沒有了data的內容:

easyui 表單提交前的 confirm 處理

最近學習用 easyui,非同步提交表單是遇到乙個小問題 fmodidetail form submit success function data 以上 在表單驗證成功後,確認對話方塊儘管也會彈出來,但並不能阻塞表單提交的工作,所以無論你確定還是取消,表單都被提交了 沒顧得上去研究easyui的原...

Java表單總結

1.建立表單 用form標籤建立表單區域,form標籤2屬性 action表單提交的資料什麼地方處理,method表單以get或post方法把資料內容提交。2.多行文字 標籤 不需要import單標籤引入 3.下拉列表 列表項 標籤 不需要import單標籤引入 如果下拉列表預設顯示某個列表項用se...

form表單總結

form表單是乙個基礎的表單控制項,最近做掃碼登陸使用到,在這裡記錄一下 1.action 提交表單的url位址 2.enctype 對表單資料進行編碼 傳送表單資料之前 2.2.multipart form data 不對資料進行編碼,表單中檔案上傳,必須使用這個 2.3.text plain 將...