來源:互聯網
上載者:User
關鍵字
體會
開發
cgi
可以
執行
AnsiString
方法
C和C加加
汗ing。。。這點點體會是面向新手的,高手可以不看。
我對php的瞭解還不夠深入,所以有時碰到用php一時沒法解決的問題就求助於順手的開發工具來做cgi了,而且安全性和穩定性也很容易提高,exe的程式也只是幾十kb而已,速度還是可以的,如果做成dll,那麼速度也是很快的。
一、根據頁面要求方法的不同,擷取傳入資料有兩種方法:
1、如果是POST方法:
例:提交表單中有一個文字框名叫 tName
那麼在C++Builder中就應該如下擷取:
AnsiString s = Request->ContentFields->Values[AnsiString("tName")];
Response->Content = s;
Response->SendResponse();
2、如果是GET方法:
例:URL請求:http://localhost/cgi-bin/xxx.exe/reg?abc=123
那麼在C++Builder中就應該如下擷取:
AnsiString s = Request->QueryFields->Values[AnsiString("abc")];
Response->Content = s;
Response->SendResponse();
二、由於編譯後是可執行代碼,所以副檔名是什麼都無所謂,只要放在可執行檔cgi目錄就可以了,例如我有個cgi檔案是prj.exe,把cgi目錄設定為唯讀、可執行、不能瀏覽等,那麼我把prj.exe檔案改為prj.html或prj.cgi都能正常應用,安全性無形中提高了一些。
三、用c++builder開發的cgi可以響應多個不同的請求,用路徑標識來區分,這些路徑是虛擬,實際上不存在的,只在當前可執行檔中存在,例如這樣:
http://localhost/cgi-bin/prj.exe/photo?id=1
http://localhost/cgi-bin/prj.exe/document?id=2
...
可以利用這一特性,把多個處理工作做在一個cgi中,呵呵,一個小小的exe檔案就基本把所有工作都做完了。