VFPCGI Day1

出自VFP Wiki

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

CGI,亦即 Common Gateway Interface,應該說是所有 web server side 技術的前身。

基本的原理是利用標準輸出入與環境變數來作為 web server 與應用程式溝通的介面。

VFP 本身並不支援標準輸出入,必須透過 Windows API 才可以。 所以我們利用 GetStdHandle 取得標準輸出檔案的 Handle,再使用 WriteFile 輸出。

讓我們來看看第一個 CGI 應用程式:

*
* cgi01
*
DECLARE INTEGER GetStdHandle in Win32API integer nHandleType
declare integer WriteFile    in Win32API integer hFile, string @ cBuffer,;
		integer nBytes, integer @ nBytes2, integer @ nBytes3

LOCAL lnOutHandle
LOCAL lnBytesWritten
LOCAL lnOverLappedIO 
LOCAL lcOutput

lnOutHandle=GetStdHandle(-11) 
lnBytesWritten=0
lnOverLappedIO=0
lcOutput = "HTTP/1.0 200 OK"+chr(13)+chr(10) + ;
	"Content-type: text/html"+chr(13)+chr(10) + ;
	CHR(13) + CHR(10) + ;
	"<p>Hello world</p>"

WriteFile(lnOutHandle, @lcOutput, len(lcOutput), @lnBytesWritten, @lnOverLappedIO)

步驟:

  1. 請先建立一個新專案,命名為 vfpcgi,再新增一個 cgi01.prg,把上面的程式碼貼進去,再編譯成 Windows executable (.exe) 檔案,所以你得到了 vfpcgi.exe
  2. 在 c:\inetpub\wwwroot 下新增一個目錄,命名為 vfpcgi,將 vfpcgi.exe 複製到這裡
  3. [控制台][系統管理工具]執行Internet Information Services
  4. 在左邊你會看到 vfpcgi,滑鼠右鍵,選取內容
  5. 點選 "建立" 按鈕,左邊原本黯淡的 TextBox 會亮起來,將使用權限改為"指令及執行檔",應用程式保護選擇為"高",按下確定。
  6. 確定你的 IIS 已經啟動,然後打開你的瀏覽器,在網址列輸入 http://localhost/vfpcgi/vfpcgi.exe,這個時候你應該會看到顯示著 Hello world 的頁面~