關於cgi的程式設計,我也還是新手!但只要懂c,則基於c的cgi程式設計就不會很難!
下面就get和post方法的應用,做乙個小小的demo,給剛學習cgi程式設計的新手提供一點感性認識!
get方法:做乙個加法運算,需要接收兩個引數
檔案get.c如下:
-------------------------------
#include
#include
int main(void)
else
printf("");
printf("");
printf("
/n");
printf("/n");
printf("/n");
return 0;
}post方法:做乙個乘法運算,需要接收兩個引數
檔案post.c如下:
--------------------------------
#include
#include
int main(void)
else
}printf("");
printf("");
printf("
/n");
printf("/n");
printf("/n");
fflush(stdout);
return 0;
}再附上html測試檔案cgi.html:
--------------------------------
method: get
please input two number:
method: post
please input two number:
幾點簡要說明:
(1) printf("content-type:text/html/n/n");
此行通過標準輸出將字串″contenttype:text/plain/n/n″傳送給web伺服器。它是乙個mime頭資訊,它告訴web伺服器隨 後的輸出是以純ascii文字的形式。請注意在這個頭資訊中有兩個換行符,這是因為web伺服器需要在實際的文字資訊開始之前先看見乙個空行。
(2) data = getenv("query_string");
cgi定義:當get方法提交的表單被傳送到伺服器斷後,表單中的資料被儲存在伺服器上乙個叫做query_string的環境變數中。這種表單的處理相對簡單,只要讀取環境變數就可以了。
(3) sscanf(data,"a=%[^&]&b=%s",a,b)!=2
這個是關於sscanf函式的使用問題,自己可以上網搜尋一下,這裡不再詳述!
(4)atoi(a)+atoi(b)
atoi函式的功能是將字元型成整型,只有轉換之後才可以進行加法運算!
(5) lenstr=getenv("content_length");
web伺服器在呼叫使用post方法的cgi程式時設定此環境變數,它的文字值表示web伺服器傳送給cgi程式的輸入中的字元數目,因此需要使用函式atoi() 將此環境變數的值轉換成整數,並賦給變數len(下面有定義)。
(6) fgets(poststr,len+1,stdin);
這個是關於fgets函式的使用問題,自己可以上網搜尋一下,這裡不再詳述!
CGI例項 表單GET與POST示例
cgi例項 表單get與post示例 get方法 做乙個加法運算,需要接收兩個引數 檔案get.c如下 include include int main void else printf printf printf n printf n printf n return 0 post方法 做乙個乘法運...
CGI程式中POST和GET訊息的處理
資料傳送格式 當使用者填完 並按了submit按鈕後,web瀏覽器並非將使用者所填的資料直接送給web伺服器,而先要經過一定的編碼處理。web瀏覽器總是將資料按照 變數名 變數值 這樣的資料對格式進行編碼,並且每對資料之間 用乙個 符號相連線。其中 變數名 就是form元素中的name屬性值 變數值...
菜鳥從零學程式設計 GET與POST
相信大家在面試的時候經常會被問到 get與post有什麼區別吧?你是怎麼回答的呢?post比get安全?get有url的長度限制而post沒有或者很大?get通過url或者cookie傳引數,post將資料放到body中?等等.但是這些是它們之間的區別嗎?或者說這些說法對嗎?想知道嗎?那就跟我來吧!...