国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用VB編寫WindowsCGI應(yīng)用程序

2019-11-18 17:45:57
字體:
供稿:網(wǎng)友
一、WindowsCGI
----通用網(wǎng)關(guān)接口CGI是服務(wù)器與應(yīng)用程序之間的接口,在編寫HTML文件時(shí)可結(jié)合其他程序語言使客戶通過瀏覽器將數(shù)據(jù)輸入到文件里,經(jīng)服務(wù)器處理后轉(zhuǎn)送給客戶或記錄在服務(wù)器的數(shù)據(jù)庫中。任何一種程序設(shè)計(jì)語言寫的程序,若可在服務(wù)器主機(jī)上運(yùn)行并可用CGI接口來傳遞數(shù)據(jù),就可作為CGI應(yīng)用程序,這種語言可被稱為CGI程序語言或腳本語言(scriptinglanguage);目前最受歡迎的CGI程序語言有:C/C ,shellScript,Perl,和VisualBasic,此外還有Fortran,TCL,AppleScript等。
----CGI接口因平臺(tái)不同而不同。Windows平臺(tái)的CGI稱為WindowsCGI。美國的BobDenny從需要實(shí)現(xiàn)CGI接口來處理Windows應(yīng)用方面的要求入手設(shè)計(jì)實(shí)現(xiàn)了WindowsCGI,開發(fā)出目前在Windows95和WindowsNT平臺(tái)上很受歡迎的HTTP服務(wù)器:WebSite;BobDenny用VB4.0寫的WindowsCGI接口程序名為CGI32.BAS,是一個(gè)給用戶在Windows95或WindowsNT環(huán)境下用VisualBasic來開發(fā)WindowsCGI應(yīng)用程序的接口,主要處理WWW服務(wù)器(如:WebSite,Netscape,Alibaba等)與CGI程序之間的數(shù)據(jù)交換:在VB中通過WindowsCGI接口處理HTML的表單傳過來的變量,并把處理結(jié)果通過WindowsHTTPServer再傳給客戶機(jī)上的瀏覽器,從而達(dá)到信息交互目的。

----由于Windows沒有命令解釋器(commandinterPReter),所以WindowsCGI程序都必需編譯為可執(zhí)行文件在服務(wù)器上運(yùn)行。

----除VB外,可以在Windows上用來寫WindowsCGI程序的語言還很多,例如:Delphi,Perl,VC 等;目前VisualBasic得以流行,是因?yàn)樵撜Z言不僅在Windows用戶中很普及,而且最早被發(fā)表為撰寫WindowsCGI程序的標(biāo)準(zhǔn),同時(shí)該語言支持許多Windows環(huán)境:例如OLE,DDE,Sockets,ODBC等;此外,VB應(yīng)用程序可在不需要窗體(windowsforms)而只在模組(modules)的環(huán)境下開發(fā),十分符合CGI應(yīng)用程序的需要。

----以前,多用VB4.0(32位版)開發(fā)WindowsCGI應(yīng)用程序,由于VB5.0的推出,用VB5.0寫WindowsCGI應(yīng)用程序更為簡單、方便和有力。

----要在Windows95/NT的PC微機(jī)上運(yùn)行WindowsCGI程序必須在PC機(jī)上安裝一個(gè)支持WindowsCGI的服務(wù)器,例如WebSite;WebSite是一個(gè)基于Windows95/WindowsNT運(yùn)行的32位、多線程的服務(wù)器,功能強(qiáng)大、使用方便,完全滿足小單位或個(gè)人建立PC服務(wù)器的要求。有關(guān)它的最新信息和免費(fèi)試用版可從http://website.ora.com/獲取。

二、用VB5.0編制WindowsCGI應(yīng)用程序的具體步驟
----Denny用VisualBasic4.0(32位版)開發(fā)了一個(gè)WindowsCGI庫模塊:CGI32.BAS,它與WebSite軟件一道提供使用(安裝WebSite時(shí)CGI32.BAS被放在c:/website/lib下,很容易找到);CGI32.BAS為Windows95/WindowsNT下用VB4.0開發(fā)WindowsCGI程序設(shè)計(jì)提供了極大的方便;目前微軟推出了功能更強(qiáng)大的VisualBasic5.0,本文通過例子介紹在CGI32.BAS下用VB5.0編寫WindowsCGI應(yīng)用程序的方法,通過這些例子可以看出用VB5.0來編寫WindowsCGI應(yīng)用程序比VB4.0更為有力和簡單。
----下面首先介紹一個(gè)最簡單的WindowsCGI程序以及將它編譯為可執(zhí)行文件放于服務(wù)器應(yīng)用的方法,這些方法是一般的,對(duì)VB編寫的WindowsCGI程序普遍實(shí)用。程序由兩個(gè)子過程CGI_Main()和Inter_Main()構(gòu)成,子過程CGI_Main()功能是在服務(wù)器端產(chǎn)生一個(gè)HTML頁面并送回Web客戶,這個(gè)頁面顯示了兩行漢字和服務(wù)器時(shí)間,是WindowsCGI程序的入口,是必不可少的;另一個(gè)子過程Inter_Main()提示該程序必須在Web服務(wù)器中運(yùn)行。源程序代碼如下:

SubCGI_Main()
Send("Content-type:text/html")
Send("")
Send("<HTML><HEAD><TITLE>
歡迎</TITLE></HEAD>")
Send("<BODY>")
Send("<H1ALIGN=CENTER>
<FONTCOLOR='#FF0080'>
歡迎您訪問</FONT></H1>")
Send("<H1ALIGN=CENTER>
<FONTCOLOR='#FF0080'>
貴州大學(xué)計(jì)算機(jī)軟件與理論研究所
</FONT></H1>")
Send("<HRWIDTH='100'>")
Send("<P><H2><FONTCOLOR='#000000'>
您訪問的時(shí)間是:"&Now)
Send("我們的WWW網(wǎng)址:
<A存放客戶
數(shù)據(jù)的文件,自動(dòng)生成,可用Excel97調(diào)閱
DeclareSubSleepLib"kernel32"
(ByValdwMillisecondsAsLong)
SubCGI_Main()
IfCGI_RequestMethod="POST"Then
EnterGuest
Beep
Else
ReturnForm
EndIf
EndSub'

----一當(dāng)Web客戶要求CGI連接,服務(wù)器執(zhí)行ReturnForm(),送出征求建議的表單:
SubReturnForm()
Send"Content-type:text/html"
Send""
Send("<HTML><HEAD><TITLE>貴州大學(xué)
</TITLE></HEAD>")
Send("<BODY><H2>歡迎您訪問貴州
大學(xué)計(jì)算機(jī)軟件與理論研究所WWW站點(diǎn)</H1>")
Send("我們的e-mail是<AHREF=""mailto:"
&CGI_ServerAdmin&_
""">lixiang@gzu.edu.cn:</A>")
Send("<HR>")
Send("請(qǐng)?zhí)钕卤?,留下您的寶貴建議:")
Send("<FORMACTION="""
&CGI_ExecutablePath&"""METHOD=""POST"">")
Send("<PRE>您的姓名:
<INPUTSIZE=25NAME=""name"">")
Send("E-mail地址:
<INPUTSIZE=25NAME=""email"">")
Send("您給我們的建議:<TEXTAREACOLS=40
ROWS=4WRAP=VIRTUALNAME=""comments"">")
Send("</TEXTAREA></PRE>")
Send("請(qǐng)擊此處將您的建議送我們:
<INPUTTYPE=""submit""")
Send("VALUE=""發(fā)送您的建議"">")
Send("<HR>")
Send("</FORM></BODY></HTML>")
EndSub

'獲取客戶建議表單數(shù)據(jù),將所填數(shù)據(jù)存入文件guestbk.csv并向客戶返回一個(gè)信息
SubEnterGuest()
DimiLockTriesAsInteger
DimsDateAsString
DimsNameAsString
DimsEmailAsString
DimsCommentsAsString
'DimsBrowserAsString
DimsFirstNameAsString
DimfnAsInteger
'提取建議的有關(guān)數(shù)據(jù):
sName=GetSmallField("name")
sEmail=GetSmallField("email")
sComments=GetSmallField("comments")
iLockTries=0
fn=FreeFile
OnErrorGoTogLockFail
gRetryLock:
OpenApp.Path "/" BOOK_FILEFor
AppendLockReadWriteAs#fn
OnErrorGoTo0
sDate=Now
Write#fn,sDate,sName,sEmail,
sComments,CGI_RemoteAddr
Close#fn
sFirstName=Trim$(Left$(sName,
InStr(sName,"")))
IfsFirstName<>""
ThensFirstName=sFirstName&","
Send("Content-type:text/html")
Send("")
Send("<HTML><HEAD><TITLE>謝謝您!
</TITLE></HEAD>")
Send("您的簽名與建議是:<PRE>")
Send("日期:"&sDate)
Send("姓名:"&sName)
Send("E-Mail:"&sEmail)
Send("Hostaddress:
["&CGI_RemoteAddr&"]")
Send("建議:</PRE>")
Send(sComments)
Send("<H2>謝謝您!</H2>")
Send("</BODY></HTML>")
ExitSub
gLockFail:
Sleep(1000)
iLockTries=iLockTries 1
ResumegRetryLock
EndSub

SubInter_Main()
MsgBox"這是CGI程序,
需要在Web服務(wù)器中運(yùn)行。",16,"CGI.BAS"
EndSub->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙雅县| 砀山县| 扎兰屯市| 丰县| 治多县| 怀远县| 香港 | 常山县| 晋宁县| 黄浦区| 顺义区| 柳河县| 沽源县| 石景山区| 韩城市| 保靖县| 丹东市| 合川市| 龙岩市| 太保市| 娄底市| 瓦房店市| 武胜县| 上蔡县| 三河市| 江永县| 松潘县| 江山市| 郑州市| 驻马店市| 嵩明县| 武城县| 于都县| 安达市| 崇义县| 合水县| 丽水市| 江阴市| 朝阳县| 辽宁省| 长宁区|