CGI( Common Gateway Interface)
printf("<br>");
}
傳值為GET的取值法:大家亦可透過範例程式去看,若是在網址列後面輸入變數(?aa=1&bb=2)便可觀察到變數QUERY_STRING裡面百的就是我們所輸入的變數值,在按照裡面的資料去PARSE便可瞭解翻譯若要使用表單的類型請看這裡,若要看具體CGI程式碼,請看這裡
傳值為POST的取值法:若是透過<form method="POST">的體式格局所傳遞過來的參數,在CGI程式之中,會被當作是Standard_input也就是當成外在輸入(可用getch, gets來抓取),然後在一個個去變數去作PARSE的動作。以下會有一個範例的表單傳遞到變數去。若要看具體CGI程式碼,請看這裡
其實對於字串的PARSE部分,應當有很多寫好的函示可以利用,不外重點照舊在於兩種輸入方式對於程式處置上的分歧。(切記:GET=>Query_String; POST=>Std_Input)
參考資料:
-
Form與CGI的綜合應用
-
用C說話進行CGI法式程式
-
Win32下apache,perl环境建立 BigApple(原作)
-
CGI典範與寫作
行使C語言寫CGI的一些心得整頓
1.放在可以履行的地方
非論哪類網頁伺服器的主機(IIS、Apache),對於檔案能否執行(execute)的權限管理相當嚴酷,尤其是Apache,要由網路上履行某些檔案(平日是CGI),都必須透過,httpd.conf
這個檔案裡面的設定才行(平日預設是 cgi-bin/ )
。另外一方面,對於IIS的設定就輕易多了,只要啟動IIS
Service將該目錄可履行的權限打開,就可以執行CGI程式。
3.CGI中參數的傳入
printf("Content-type: text/html ");#include <stdio.h>
猶如之前所敘述,CGI程式與一般的程式最大的不同在於資料擷取的分歧,網頁資料的擷取上首要有兩種,劃分是透過GET與POST翻譯這兩種可以透過表單函數<form method="GET/POST">下去設定,在此援用Form與CGI的綜合運用中作者所畫的一張圖,可以清晰的瞭解變數在此轉換的差異。 for(int i = 0; envp[i] != NULL; ++i ){printf ("Content-type: text/html "); 這個就是代表這是一個網頁的程式,記住"Content-type: text/html "這段文字儘量不要點竄,而且連空白都要注意好(沒有注意好,網頁伺服器會誤認為其他可執行檔案而釀成可以下載,而非當做CGI程式),所以憑據這個,以下為一個基本的CGI程式 P.S. 算是FAQ的問題,請注意即使可以執行 C說話的請編譯好用點竄權限為可以履行的檔案。
2.C說話中CGI裡面的Hello World!! // |
列位可將此程式編譯(gcc -o test1.cgi test1.cpp)以後,放在可以履行的目次下翻譯
printf(envp[i]);
按照以上的圖,有兩一個系統參數可以鑒識參數傳過來的體例,就是(REQUEST_METHOD),裡面會儲存傳入變的的體例,行使以下一個簡單的程式可以抓取所有的情況變數:
關於利用C說話撰寫CGI程式的部份,這也是之前人家面試的時辰,所扣問天成翻譯公司的別的一個問題,經過這幾天上彀找資料,而且撰寫以後,將一些心得收拾整頓出來,進展能幫助到有一些疑問的人翻譯其實操縱要害字『C語言、CGI、GET、POST』仍是可以找到蠻多相幹的網頁,大部份的資料都嫌老舊,並且都是由統一個作者撰寫而出(不外卻是有蠻多人複製在本身的網站上面--_________--""),所以在此為列位整理一些概念,而繁瑣的程式碼(關於將STRING去spilit而且找出變數對應值)就不再胪陳,可參考以下這個網址,在這裡只專注於觀念上的論述,進展帶給各人一些基本的概念。 操縱C說話撰寫CGI程式 }本文引用自: http://blog.roodo.com/testingkkdai/archives/3050181.html有關各國語文翻譯公證的問題歡迎諮詢天成翻譯公司02-77260931 |