在C++Builder中開發(fā)CGI的一些點體會
發(fā)表時間:2023-07-20 來源:明輝站整理相關軟件相關文章人氣:
[摘要]汗ing。。。這點點體會是面向新手的,高手可以不看。我對php的了解還不夠深入,所以有時碰到用php一時沒法解決的問題就求助于順手的開發(fā)工具來做cgi了,而且安全性和穩(wěn)定性也很容易提高,exe的程序...
汗ing。。。這點點體會是面向新手的,高手可以不看。
我對php的了解還不夠深入,所以有時碰到用php一時沒法解決的問題就求助于順手的開發(fā)工具來做cgi了,而且安全性和穩(wěn)定性也很容易提高,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();
二、由于編譯后是可執(zhí)行代碼,所以擴展名是什么都無所謂,只要放在可執(zhí)行的cgi目錄就可以了,例如我有個cgi文件是prj.exe,把cgi目錄設置為只讀、可執(zhí)行、不能瀏覽等,那么我把prj.exe文件改為prj.html或prj.cgi都能正常應用,安全性無形中提高了一些。
三、用c++builder開發(fā)的cgi可以響應多個不同的請求,用路徑標識來區(qū)分,這些路徑是虛擬的,實際上不存在的,只在當前可執(zhí)行文件中存在,例如這樣:
http://localhost/cgi-bin/prj.exe/photo?id=1
http://localhost/cgi-bin/prj.exe/document?id=2
...
可以利用這一特性,把多個處理工作做在一個cgi中,呵呵,一個小小的exe文件就基本把所有工作都做完了。