VFPCGI Day6

出自VFP Wiki

跳轉到: 導航, 搜尋
VFPCGI的第六天

那麼,要怎麼接收參數呢? Web application 如果不能收參數,那就遜掉了~程式也會難寫很多吧~

接收參數有兩種方式,一種是 GET,一種則是 POST 差別在哪裡? 使用者看得到的,最大的差別就在於網址列。 如果網址列有像是 http://localhost/default.aspx?name1=value1&name2=value2 這種的,就表示是以 GET 方式,預設的存取方式其實也是 GET。

對 CGI 應用程式來說,最大的差別在於讀取資料的方式:如果是 GET,那就取得 QUERY_STRING 這個環境變數的內容;如果是 POST,那麼就讀取 STDIN (標準輸入) 的內容。

那麼,CGI 應用程式又要怎麼知道現在是 GET 還是 POST 呢? 同樣地,還是透過環境變數,這個環境變數的名字就叫做 REQUEST_METHOD。

ok,讓我們根據以上的原則來寫寫程式,請新增一個 cgi04.prg,然後將她設置為 main (set as main)

*
* cgi04
*
SET PROCEDURE TO cgilib

LOCAL oResponse
oResponse = CREATEOBJECT( "RESPONSE" )

LOCAL cRequestMethod
cRequestMethod = GETENV( "REQUEST_METHOD" )

oResponse.Write( "<p>REQUEST_METHOD=" + cRequestMethod + "</p>")

DO CASE 
	CASE cRequestMethod == "GET"
		oResponse.Write( "<p>QUERY_STRING=" + GETENV( "QUERY_STRING" ) + "</p>" )
	CASE cRequestMethod == "POST"
		* not implemented.
ENDCASE 

同樣,編譯好,丟到正確的位置之後(如果你還不知道,請參考前面),輸入:

http://localhost/vfpcgi/vfpcgi.exe?name1=value1&name2=value2

就可以看到結果了。 這邊只演示了 GET 的部份,明天再來搞 POST 的部份...