VFPCGI Day7
出自VFP Wiki
(修訂版本間差異)
在2006年11月22日 (三) 14:48所做的修訂版本
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 的部份...