CGI程式設計入門 GET與POST示例

2021-05-22 23:21:00 字數 1668 閱讀 6233

關於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中?等等.但是這些是它們之間的區別嗎?或者說這些說法對嗎?想知道嗎?那就跟我來吧!...