用FoxWeb在網(wǎng)上迅速公布你的FOXPRO數(shù)據(jù)庫(kù)
發(fā)表時(shí)間:2024-05-14 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]作者:駱文先FoxWeb是微軟專門為發(fā)布FOXPRO系列數(shù)據(jù)庫(kù)而開發(fā)的一個(gè)CGI接口,如果你熟悉Foxpro編程,你只要了解一下如何使用FoxWeb就可以快速開發(fā)出令人滿意的網(wǎng)站了(也許你只要看完本文就知道如何做了)!當(dāng)然,你必須要有一定的HTML基礎(chǔ)! 下面介紹如何使用FoxWeb來(lái)開發(fā)WEB...
作者:駱文先
FoxWeb是微軟專門為發(fā)布FOXPRO系列數(shù)據(jù)庫(kù)而開發(fā)的一個(gè)CGI接口,如果你熟悉Foxpro編程,你只要了解一下如何使用FoxWeb就可以快速開發(fā)出令人滿意的網(wǎng)站了(也許你只要看完本文就知道如何做了)!當(dāng)然,你必須要有一定的HTML基礎(chǔ)!
下面介紹如何使用FoxWeb來(lái)開發(fā)WEB程序!
1、系統(tǒng)的安裝配置
首先,你可以從www.FoxWeb.com下載安裝文件,試用版可以免費(fèi)使用30天。安裝之前,你必須先安裝VFP3.0以上的版本,再安裝FoxWeb,安裝很簡(jiǎn)單,安裝完成后,啟動(dòng)FoxWebControlCenter,你只要簡(jiǎn)單配置一些基本的參數(shù)就可以了!
Admin.Name:管理員的名字.它將被保存在CGI.AdminName中。
Admin.E-Mail:管理員的EMAIL.它將被保存在CGI.Admin中。
PRGTimeout:超時(shí)時(shí)間,它指示服務(wù)器在返回一錯(cuò)誤結(jié)果給用戶之前等待用戶程 序結(jié)束的時(shí)間(秒)。
VFP.EXE:VFP.EXE的絕對(duì)路徑。
ProgramRoot:用戶程序根目錄的絕對(duì)路徑。你的程序應(yīng)該放在這相目錄下。
TotalChannels:總FoxWeb頻道數(shù)。它由服務(wù)器的內(nèi)存和CPU數(shù)來(lái)決定,在單CPU的服務(wù)器上,最好不要超過(guò)4個(gè)。
其它參數(shù)你按默認(rèn)值就可以了!
2、怎樣提取用戶端信息。
用戶端的信息包括兩部分:HTTP數(shù)據(jù)項(xiàng)和表單數(shù)據(jù)項(xiàng)。HTTP數(shù)據(jù)項(xiàng)包括客戶端和服務(wù)器端的信息,如客戶端IP,服務(wù)器名等,它們被放在對(duì)象CGI中,你只要用CGI.NameOfParameter就可以引用對(duì)應(yīng)的值,如CGI.RemoteAddress將返回客戶端的IP地址!
表單數(shù)據(jù)項(xiàng)包括了用戶輸入的信息,要取出這些值,用函數(shù)FormField()就可以了,例如,F(xiàn)ormField("LastName")將返回表單中輸入框名為L(zhǎng)astName的值。
3、怎樣生成并返回結(jié)果給用戶。
在你的程序退出以后,F(xiàn)oxWeb將尋找公用變量html_out,并把它的內(nèi)容返回給瀏覽器,因此你只要把你要返回的結(jié)果寫入變量html_out就可以了!返回結(jié)果的第一行必須為返回結(jié)果的MIME類型,且后續(xù)一空行。例如,對(duì)通常的HTML輸出,必須在返回結(jié)果的第一行寫下:Content-type:text/html
FoxWeb提供一種很方便生成返回結(jié)果的方法,你可以把你要生成的結(jié)果按規(guī)定的格式生成模板,并保存在數(shù)據(jù)庫(kù)或者文件中,程序中,先生成模板中所有的變量的值,然后再用FoxWeb提供的函數(shù)MergeTxt()就可以生成結(jié)果了,該函數(shù)會(huì)自動(dòng)把模板中的變量(“<<”和“>>”之間的內(nèi)容)替換為該變量的實(shí)際值。
4、URL的結(jié)構(gòu)。
調(diào)用FoxWeb程序的URL的結(jié)構(gòu)如下:
http://ServerName/cgi-shl/FoxWeb.exe/ProgramName?QueryString
其中,ServerName是你的WEB服務(wù)器的名稱,Cgi-shl是你的CGI目錄,ProgramName是你的程序名(不帶.prg后綴),可以是相對(duì)路徑,也可以是絕對(duì)路徑。另一種ProgramName格式是"Procedure@Program",它對(duì)應(yīng)FoxPro的"DOprocedureINprogram"命令.QueryString 是你想放到變量CGI.QueryString中的值。如:
"http://myserver.com/cgi-shl/FoxWeb.exe/list@c:\prg\customer?all"
將調(diào)用"DOlistINc:\prg\customer",也就是運(yùn)行prg文件"C:\PRG\CUSTOMER" 中的過(guò)程"LIST",CGI.QueryString的值將被設(shè)置為字符串"all"。
5、全局過(guò)程。
FoxWeb提供兩個(gè)局過(guò)程,F(xiàn)W_ENTER.PRG和FW_EXIT.PRG,它們必須放在程序的根目錄(ProgramRoot)中。它們?cè)诿總(gè)FoxWeb請(qǐng)求中都被執(zhí)行,F(xiàn)W_ENTER.PRG在用戶程序執(zhí)行之前執(zhí)行,如果它的返回結(jié)果為.F.,則用戶程序?qū)⒉槐粓?zhí)行。FW_EXIT.PRG則在用戶程序執(zhí)行完后執(zhí)行,因此這兩個(gè)全局過(guò)程一般用于設(shè)置系統(tǒng)環(huán)境或者對(duì)訪問(wèn)作安全控制等。
下面是一個(gè)簡(jiǎn)單的例子,它只是簡(jiǎn)單地提取出用戶輸入的值,并返回該值給用戶:
包括一表單的主頁(yè)a.html如下:
< html>
< head>
< title>test< /title>
< /head>
< body>
< form action="/cgi-bin/FoxWeb.exe/test" method="POST">請(qǐng)輸入你的姓名:
< input type="text" name="name">
< input type="Submit" name="ok" value=" 確定">
< /form>
< /body>
< /html>
用戶程序test.prg如下:
M.Name=alltrim(formField('name'))&&取出用戶輸入的值
html_out=MergeTxt(ReadFile("moban.txt"))&&返回結(jié)果給用戶return
模板文件moban.txt如下:
Content-type:text/html
< HTML>
< HEAD>
< TITLE>輸入結(jié)果< /TITLE>
< /HEAD>
< BODY>
你的姓名是:<< m.name>>
你的IP是:<< cgi.remoteaddress>>
< /BODY>
< /HTML>
如果用戶輸入的姓名為李小龍,則用戶將收到如下頁(yè)面:
< HTML>
< HEAD>
< TITLE>輸入結(jié)果< /TITLE>
< /HEAD>
< BODY>
你的姓名是:李小龍
你的IP是 :202.103.111.85
< /BODY>
< /HTML>
通過(guò)以上介紹,你應(yīng)該對(duì)FoxWeb的用法有一個(gè)大概的了解了吧,但要真正用它開發(fā)強(qiáng)大的應(yīng)用程序,這還是不夠的。要了解更詳細(xì)的信息,請(qǐng)參考www.FoxWeb.com。里面包括了函數(shù)參考、文件上載、程序調(diào)試、優(yōu)化性能及程序安全等更詳細(xì)的信息。
(全文完)