簡單的入門程式
下面我們來看乙個簡單的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 將...