动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Visual Basic教程 ]的信息

本月文章推荐
.记录集锁定--多客户环境下VB数据.
.VB操作.ini后缀文件的方法.
.利用INI文件给程序创建动态菜单.
.教你认识VB的座标系统.
.变量的作用域与存活期.
.VB中APP对象及其应用.
.把Outlook信箱中的附件另存为.
.旋转字体.
.VBCOM基础讲座之发布组件.
.VisualBasic概念.
.使VB的网格控件具有输入功能.
.如何在VB中截获shell程序的输出.
.VisualBasic让表单一开始就显示在.
.VisualBasic中DataCombo和DataLi.
.用VB实现用户登录admin888的修改.
.如何充分扩充VB功能.
.VB实现图形动画的三种方法.
.VB6.0中的几个新增数据库工具.
.用API函数控制光驱的开关.
.VB游戏写作技巧(1)秀图篇.

用VB编写WindowsCGI应用程序

发表日期:2006-2-27 |


一、WindowsCGI
----通用网关接口CGI是服务器与应用程序之间的接口,在编写HTML文件时可结合其他程序语言使客户通过浏览器将数据输入到文件里,经服务器处理后转送给客户或记录在服务器的数据库中。任何一种程序设计语言写的程序,若可在服务器主机上运行并可用CGI接口来传递数据,就可作为CGI应用程序,这种语言可被称为CGI程序语言或脚本语言(scriptinglanguage);目前最受欢迎的CGI程序语言有:C/C ,shellScript,Perl,和VisualBasic,此外还有Fortran,TCL,AppleScript等。
----CGI接口因平台不同而不同。Windows平台的CGI称为WindowsCGI。美国的BobDenny从需要实现CGI接口来处理Windows应用方面的要求入手设计实现了WindowsCGI,开发出目前在Windows95和WindowsNT平台上很受欢迎的HTTP服务器:WebSite;BobDenny用VB4.0写的WindowsCGI接口程序名为CGI32.BAS,是一个给用户在Windows95或WindowsNT环境下用VisualBasic来开发WindowsCGI应用程序的接口,主要处理WWW服务器(如:WebSite,Netscape,Alibaba等)与CGI程序之间的数据交换:在VB中通过WindowsCGI接口处理HTML的表单传过来的变量,并把处理结果通过WindowsHTTPServer再传给客户机上的浏览器,从而达到信息交互目的。

----由于Windows没有命令解释器(commandinterpreter),所以WindowsCGI程序都必需编译为可执行文件在服务器上运行。

----除VB外,可以在Windows上用来写WindowsCGI程序的语言还很多,例如:Delphi,Perl,VC 等;目前VisualBasic得以流行,是因为该语言不仅在Windows用户中很普及,而且最早被发表为撰写WindowsCGI程序的标准,同时该语言支持许多Windows环境:例如OLE,DDE,Sockets,ODBC等;此外,VB应用程序可在不需要窗体(windowsforms)而只在模组(modules)的环境下开发,十分符合CGI应用程序的需要。

----以前,多用VB4.0(32位版)开发WindowsCGI应用程序,由于VB5.0的推出,用VB5.0写WindowsCGI应用程序更为简单、方便和有力。

----要在Windows95/NT的PC微机上运行WindowsCGI程序必须在PC机上安装一个支持WindowsCGI的服务器,例如WebSite;WebSite是一个基于Windows95/WindowsNT运行的32位、多线程的服务器,功能强大、使用方便,完全满足小单位或个人建立PC服务器的要求。有关它的最新信息和免费试用版可从http://website.ora.com/获取。

二、用VB5.0编制WindowsCGI应用程序的具体步骤
----Denny用VisualBasic4.0(32位版)开发了一个WindowsCGI库模块:CGI32.BAS,它与WebSite软件一道提供使用(安装WebSite时CGI32.BAS被放在c:\website\lib下,很容易找到);CGI32.BAS为Windows95/WindowsNT下用VB4.0开发WindowsCGI程序设计提供了极大的方便;目前微软推出了功能更强大的VisualBasic5.0,本文通过例子介绍在CGI32.BAS下用VB5.0编写WindowsCGI应用程序的方法,通过这些例子可以看出用VB5.0来编写WindowsCGI应用程序比VB4.0更为有力和简单。
----下面首先介绍一个最简单的WindowsCGI程序以及将它编译为可执行文件放于服务器应用的方法,这些方法是一般的,对VB编写的WindowsCGI程序普遍实用。程序由两个子过程CGI_Main()和Inter_Main()构成,子过程CGI_Main()功能是在服务器端产生一个HTML页面并送回Web客户,这个页面显示了两行汉字和服务器时间,是WindowsCGI程序的入口,是必不可少的;另一个子过程Inter_Main()提示该程序必须在Web服务器中运行。源程序代码如下:

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'>
贵州大学计算机软件与理论研究所
</FONT></H1>")
Send("<HRWIDTH='100'>")
Send("<P><H2><FONTCOLOR='#000000'>
您访问的时间是:"&Now)
Send("我们的WWW网址:
<AHREF='http://www.gzu.edu.cn/
~lixiang/index.html'>
www.gzu.edu.cn/~lixiang/index.html</A>")
Send("我们的Email地址:
<AHREF='mailto:lixiang@gzu.edu.cn'>
lixiang@gzu.edu.cn")
Send("</H2></BODY></HTML>")
EndSub
SubInter_Main()
MsgBox"这是CGI程序,需在Web服务器上运行."
EndSub

----现在,介绍在VB5.0集成开发环境里编辑、编译、调试该WindowsCGI应用程序并生成可执行文件放入服务器中在网上使用的具体步骤:

----1建立项目(Project):运行VB5.0,在主菜单选“文件(F)|新建工程(N)”,在出现的“新建工程”对话框中选“标准EXE”;由于WindowsCGI应用程序不需要自己的窗体,故在用VB5.0建立项目文件(Project)的上述步骤后,在出现的名为“工程-工程1”的“资源管理器”窗口中用鼠标右击“Form1”将其删除;

----2添加文件:在主菜单选“工程(P)|添加文件(A)”,在出现的添加文件对话框中选择cgi32.bas所在目录(例如c:\website\lib\)将其打开加入工程中;

----3添加模块:在主菜单选“工程(P)|添加模块(M)”,在出现的对话框中将模块(Module1)打开加入;

----4录入代码:在模块代码窗口中录入上面给出的两个子过程的代码。

----5保存模块和工程文件:在主菜单中选:“文件(F)|工程另存为(E)”,可对模块(Module1.bas)和工程(工程1.vbp)重新取名(例如:guida.bas和guida.vbp)存盘;

----6生成可执行文件:在主菜单中选“文件(F)|生成guida.exe(K)”,在出现的对话框里选好存盘目录将guida.exe存盘;

----7将生成的可执行文件(guida.exe)放入服务器:对WebSite服务器,应放置在子目录\WebSite\cgi-win\里;

----8在Web客户端运行这个CGI程序:在本机上运行,打开浏览器,在URL栏中连接:http://localhost/cgi-win/guida.exe;在网上的Web客户端,用http://服务器主机/cgi/guida.exe

三、用VB5.0制作一个网上征求意见的WindowsCGI应用程序
----下面举一个较复杂实用的WindowsCGI程序,它由4个子过程组成:CGI_Main(),EnterGuest(),ReturnForm()和Inter_Main();它的功能是:服务器向申请连接的Web客户发出一张表单,Web客户在表单里填入有关数据后送回服务器,服务器收到Web客户的数据并将它们写入一个文件中存储起来,同时向Web客户发送一个收条。这个WindowsCGI应用程序的工作流程如下:一当Web客户要求CGI连接,服务器运行该CGI程序,首先执行CGI_Main()过程,CGI_Main()过程调用ReturnForm()向Web客户送出一个表单,如果Web客户填了意见表,并按键寄回服务器(此时过程CGI_Main()中CGI_RequestMethod="POST"成立)则由CGI_Main()过程调用EnterGuest()获取客户发来的数据并将其放入文件guestbk.csv中,同时向Web客户返回一个信息回条表示客户表单已收到。
----由于编译使用这个CGI程序的做法与上面完全相同,故下面仅给源程序代码:

OptionExplicit
ConstBOOK_FILE="guestbk.csv"'存放客户
数据的文件,自动生成,可用Excel97调阅
DeclareSubSleepLib"kernel32"
(ByValdwMillisecondsAsLong)
SubCGI_Main()
IfCGI_RequestMethod="POST"Then
EnterGuest
Beep
Else
ReturnForm
EndIf
EndSub'

----一当Web客户要求CGI连接,服务器执行ReturnForm(),送出征求建议的表单:
SubReturnForm()
Send"Content-type:text/html"
Send""
Send("<HTML><HEAD><TITLE>贵州大学
</TITLE></HEAD>")
Send("<BODY><H2>欢迎您访问贵州
大学计算机软件与理论研究所WWW站点</H1>")
Send("我们的e-mail是<AHREF=""mailto:"
&CGI_ServerAdmin&_
""">lixiang@gzu.edu.cn:</A>")
Send("<HR>")
Send("请填下表,留下您的宝贵建议:")
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("请击此处将您的建议送我们:
<INPUTTYPE=""submit""")
Send("VALUE=""发送您的建议"">")
Send("<HR>")
Send("</FORM></BODY></HTML>")
EndSub

'获取客户建议表单数据,将所填数据存入文件guestbk.csv并向客户返回一个信息
SubEnterGuest()
DimiLockTriesAsInteger
DimsDateAsString
DimsNameAsString
DimsEmailAsString
DimsCommentsAsString
'DimsBrowserAsString
DimsFirstNameAsString
DimfnAsInteger
'提取建议的有关数据:
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服务器中运行。",16,"CGI.BAS"
EndSub->

上一篇:SMTP协议简介(SimpleMailTransferProtocol) 人气:2718
下一篇:Modem通讯意外处理 人气:2640
浏览全部Visual Basic的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成