Get請求就是我們在瀏覽器地址欄輸入URL時發送請求的方式,或者我們在HTML中定義一個表單(form)時,把action屬性設為“Get”時的工作方式;
Get請求字串就是跟在URL後面以問號“?”開始的字串,但不包括問號。比如這樣的一個請求: http://127.0.0.1/cgi-bin/out.cgi?ThisIsTheGetString
在上面這個URL中,“ThisIsTheGetString”就是Get請求字串。
在進入我們自己編寫的cgi代碼之前,CGIC庫已經事先把這個字串取到了,我們可以在程式中直接獲得,要做的僅僅是在你編寫的cgiMain方法前面加入以下聲明: extern char * cgiQueryString ;
現在給出一個簡單的例子,這個例子跟上一篇的測試程式非常相似,只不過程式的輸出是使用者輸入的Get請求字串。 下載: test.c #include <stdio.h> #include "cgic.h" #include <string.h> #include <stdlib.h> extern char *cgiQueryString; int cgiMain() { cgiHeaderContentType("text/html"); fprintf(cgiOut, "<HTML><HEAD>\n"); fprintf(cgiOut, "<TITLE>My CGIC</TITLE></HEAD>\n"); fprintf(cgiOut, "<BODY>"); fprintf(cgiOut, "<H1>%s</H1>",cgiQueryString); fprintf(cgiOut, "</BODY>\n"); fprintf(cgiOut, "</HTML>\n"); return 0; }
假設把這個程式編譯成out.cgi(編譯方法參見上一篇),並部署到Web伺服器的cgi-bin目錄下,當使用者在瀏覽器地址欄輸入本文開頭給出的URL字串時,瀏覽器頁面上會顯示: ThisIsTheGetString
我們也可以編寫一個用於測試的HTML頁面: 下載: test.html <html> <head> <title>Test</title> </head> <body> <form action="cgi-bin/out.cgi" method="get"> <input type="text" name="theText"> <input type="submit" value="Continue →"> </form> </body> </html>
檔案的部署結構應該為:
|test.html
|—-cgi-bin/out.cgi
大家可以試試,通過瀏覽器訪問http://127.0.0.1/test.html,在文字框內輸入一些字元,並點擊提交按鈕,然後就可以看到cgi程式的執行結果:把在文字框輸入的字元原樣顯示在瀏覽器上。