⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 01_9_14_21.asp.html

📁 有用的VC教程,包括编程思想编程技巧程序效率等方面的指导
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
<TITLE>计算机世界网-用VC++编写CGI程序</TITLE></HEAD>
<style>
.a14{font-size:14px;text-indent:25px;line-height:20px}
.f{font-size:18px;color=#0f3ccd}
img{border:0px;}
td,p,input{font-fammily:verdana,宋体;font-size:12px;}
A:link {text-decoration:none;color:black}
A:visited {text-decoration:none;color:#80006f}
A:hover {text-decoration:underline;color:black}
</style>
<center>
<BODY topmargin=2 leftmargin=0>
<style>
.v12{font-size:10pt;color:"#ffffff";FONT-WEIGHT: bold}
.v14{font-size:14px;text-indent:25px;line-height:20px}
img{border:0px;}
td,p,input,select{font-fammily:verdana,宋体;font-size:12px;}
A:link {text-decoration:none;color:black}
A:visited {text-decoration:none;color:#80006f}
A:hover {text-decoration:underline;color:black}
</style>

<style>
.v13{font-size:10pt;color:"#ffffff";FONT-WEIGHT: bold}
.v12{font-size:13px;color:"#4C029C";FONT-WEIGHT: bold}
.v14{font-size:14px;text-indent:25px;line-height:20px}
img{border:0px;}
td,p,input,select{font-fammily:verdana,宋体;font-size:12px;}
A:link {text-decoration:none;color:black}
A:visited {text-decoration:none;color:#80006f}
A:hover {text-decoration:underline;color:black}
</style>

<!--头-->

<table align=center cellpadding="0" cellspacing="0" border="0" width="767">
  <tr><td valign=bottom>
      <table cellpadding="0" cellspacing="0" border=0>
        <tr><td valign=top><img src="../../../../../center/image/ccwlogo.gif"></td></tr>
        <tr><td height="27" valign=top><img src="../../../../../center/image/knowledge.gif" width="207" height="27"></td></tr>
      </table></td>
	<td valign=bottom width=556 bgcolor="#4c029c" height=96>
		  <table cellpadding="0" cellspacing="0" border=0 width=556 bgcolor="#4c029c" height=96>
        <tr><td height=25 valign=bottom bgcolor="#ffffff"  colspan=2 ><img src="../../../../../image2002/top.gif" usemap="#F"></td></tr>
	<tr  valign=middle >
		<td align=center valign=middle height="60" align=center>
		<!-- <a href="http://www.ccw.com.cn/search/" target=_blank><img src="../../../../../img2/esearch.GIF" border=0 width=468 height=60></a> --><a href="http://www.ccw.com.cn/html/search/thememail/" target=_blank><img src="../../../../../img2/topbanner_thememail.GIF" border=0 width=468 height=60></a>	
		</td>		
		<td  align=center width=15%>
			<table width=95%>
				<tr><td><a href="mailto:center@ccw.com.cn?subject=我要投稿:" target=_blank><font class=v13>我要投稿</a><br><a href="mailto:center@ccw.com.cn?subject=编读往来"><font class=v13>编读往来</a><br><a href="javascript:AddBookMark('计算机世界网首页')"><font class=v13>加入收藏</a></font></td></tr>
			</table>
		</td>
	</tr>
		<tr><td bgcolor="#ffffff" height=1 colspan=2 ></td></tr>
		<tr><td bgcolor="#b4aafc" height=2 colspan=2 ></td></tr></table>
		<map name="F">
<area href="http://www.ccw.com.cn/" shape="rect" coords="29, 3, 61, 18" target=_blank>
<area href="http://www.ccw.com.cn/news1/" shape="rect" coords="72, 3, 143, 18" target=_blank>
<area href="http://www.ccw.com.cn/center/" shape="rect" coords="155, 2, 216, 18" target=_blank>
<area href="http://www.ccw.com.cn/work/" shape="rect" coords="225, 2, 299, 18" target=_blank>
<area href="http://www.ccw.com.cn/search/" shape="rect" coords="310, 3, 364, 19" target=_blank>
<area href="http://www3.ccw.com.cn/" shape="rect" coords="372, 2, 412, 19" target=_blank>
<area href="http://www2.ccw.com.cn/" shape="rect" coords="424, 2, 550, 18" target=_blank></map>
	</td></tr>
	<tr><td colspan=2 bgcolor="#b4aafc">
	<table border=0 cellpadding=0 cellspacing=0 width=100%>
		<tr>
            <td width=26% align=center><font  class=v12>【2003年6月24日】&nbsp;&nbsp;&nbsp;</font></td>
            <td CLASS=V12> <a href="http://www.ccw.com.cn/center/topic.asp">专 题</a> /</td>
            <td CLASS=V12><a href="http://www.ccw.com.cn/center/tech.asp">技 术</a>  /</td>
            <td CLASS=V12><a href="http://www.ccw.com.cn/center/prod.asp">产 品</a> /</td>
            <td CLASS=V12><a href="http://www.ccw.com.cn/center/app.asp">应 用</a> /</td>
            <td CLASS=V12><a href="http://www.ccw.com.cn/center/net.asp">网 络</a> /</td>
            <td CLASS=V12><a href="http://www.ccw.com.cn/center/prog.asp">编 程</a> /</td>
            <td CLASS=V12><a href="http://www.ccw.com.cn/center/skill.asp">技 巧</a> </td>
         </tr>
	</table>
	</td></tr>
</table>
<table align=center width=728>
<tr><td align=center><br><h2><font color='#0f3ccd'>用VC++编写CGI程序</font></h2>
<br><b>浙江大学 徐晨勇 段会龙 吕维雪</b>
</td></tr><tr><td align=right>01-9-14 下午 04:03:14<br><hr size=1 width=718 color=#f46240></td></tr></table><br>
<table align=center width=728><tr><td valign=top width=600>
<table width=100% ><tr><td class=a14>近年来,Internet与Intranet迅猛发展,企业纷纷建立自己的Intranet,以加强企业内部的联系,促进与外部世界的沟通,增强企业的竞争能力。通过建立自己的Internet服务器,企业能在网络上发布广告,介绍本公司的情况与产品,收集顾客意见,以及建立虚拟电子商场等。大家都知道写一个HTML超文本文件放在World Wide Web服务器上,即可通过各种浏览器访问你的主页,但是如何使你的静态主页能响应客户的动作,并与本地的数据库联系,将数据库的相应内容传送给远端的浏览器呢?这就需要通过CGI接口进行联系。</td></tr></table><table width=100% ><tr><td class=a14>
CGI全名是Common Gateway Interface,它是WWW服务器调用外部程序的接口通过CGI,WW W服务器能完成一些本身所力不能及的工作。</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
在不同操作系统下CGI接口也不相同,可分为Standard CGI接口、DOS CGI接口与Win CG I接口等。Standard CGI接口用于Unix系统,它是通过环境变量来实现WWW Server与CGI应用程序之间的联系。DOS CGI接口与Standard CGI接口原理类同。Win CGI接口则与前两者大不相同。由于越来越多的WWW Server采用Windows系统,而Windows系统又不能有效地传递环境变量,由Bob Denny提出了一种Windows CGI标准,并得以不断推广。</td></tr></table><table width=100% ><tr><td class=a14>
Win CGI是通过.ini文件来进行联系的。在Windows环境下,许多应用程序都是利用.ini 文件,即profile文件来定义一些基本设定,而Win CGI程序与WWW Server之间也正是通过pro file文件来实现联系的。当WWW Client通过WWW Server触发CGI程序时,WWW Server先动态生成几个文件于临时目录下,分为.ini、.inp、.out等文件。在WWW Server生成CGI程序的进程时,通过命令行参数将.ini文件的绝对路径传给CGI进程。.ini文件中也包含了.inp、.ou t等文件路径信息。这样,CGI程序可读取.ini和.inp文件所提供的信息,了解所有来自WWW Server端和与WWW Client端的数据。然后,CGI程序可以调用外部程序,或由CGI直接执行外部程序的功能,并将要传给客户端的信息以HTML文本的形式写在.out文件上。最后,WWW Server取.out文件的HTML文本,将信息传送给WWW Client端,并删除临时目录下的文件。那么,CGI的profile文件包含了什么数据呢?与Windows其它.ini文件一样,CGI profile 文件包含了许多session,每个session又包含一些key,以下是一个CGI profile的部份内容</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
[CGI]</td></tr></table><table width=100% ><tr><td class=a14>
Request Method=POST //传递方式,即HTML中的Form method有GET,POST,HEAD等。</td></tr></table><table width=100% ><tr><td class=a14>
Server Software=WebSite/1.1e</td></tr></table><table width=100% ><tr><td class=a14>
//Server的名称与版本。</td></tr></table><table width=100% ><tr><td class=a14>
Server Name=199.199.198.55</td></tr></table><table width=100% ><tr><td class=a14>
//Server的IP地址。</td></tr></table><table width=100% ><tr><td class=a14>
Server Port=80//Server的Socket Port。</td></tr></table><table width=100% ><tr><td class=a14>
Server Admin=tomy@vico.bme.zju.edu.cn//Server管理者的E-mail地址。</td></tr></table><table width=100% ><tr><td class=a14>
Referer=http://199.199.198.55/</td></tr></table><table width=100% ><tr><td class=a14>
//主页的URL路径。</td></tr></table><table width=100% ><tr><td class=a14>
Remote Address=199.199.198.89</td></tr></table><table width=100% ><tr><td class=a14>
//Client端的IP地址。</td></tr></table><table width=100% ><tr><td class=a14>
[System]</td></tr></table><table width=100% ><tr><td class=a14>
Output File=c:\WebSite\cgi-temp\198ws.out//输出文件的路径名。</td></tr></table><table width=100% ><tr><td class=a14>
Content File=c:\WebSite\cgi-temp\198ws.inp//输入文件的路径名。</td></tr></table><table width=100% ><tr><td class=a14>
[Form Literal]</td></tr></table><table width=100% ><tr><td class=a14>
type=B//接收到的Form data即client端动作的结果信息。</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
原则上可用来编写CGI程序的语言有:perl, AppleScript, Unix Shell, VB, C/C++等。但在Windows(NT、3x、95)环境下,还是必须借助成熟的Windows编程语言才能编写出精巧的Win CGI程序。C语言是一门深受广大程序员喜爱的语言,尤其是VCi++作为一门面向对象的语言,具备了Windows环境的许多基本功能,如OLE,ODBC等。通过ODBC这项功能,可以非常容易地连接FoxPro, Access, dBASE等多种数据库,而无需考虑各种数据库结构的差异。</td></tr></table><table width=100% ><tr><td class=a14>
以下是笔者用VC++4.0编写的一个用Win CGI连接数据库的范例。使用者可在屏幕上选择,以查询ISP服务商提供的internet服务价格表。系统环境采用Windows 95,数据库采用FoxP ro2.5, WWW Server采用Website。</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b>1.建立数据库</b></td>
    </tr></table><table width=100% ><tr><td class=a14>
本例的CGI程序是通过ODBC连接数据库,因此数据库建完后,应用32位ODBC驱动器加以登记。</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b>2.编写HTML程序</b></td>
    </tr></table><table width=100% ><tr><td class=a14>
使用者可在屏幕上选择一服务类型,再按"提交"键,即可查询这一服务类型的各价格栏目。其HTML文本描述如下:</td></tr></table><table width=100% ><tr><td class=a14>
&lt;HTML&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;HEAD&gt;{TITLE&gt;维科公司internet服务收费标准&lt;/TITLE&gt;&lt;/HEAD&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;pre&gt;&lt;H1&gt;维科公司internet服务收费标准&lt;/H1&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;/P&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;hr&gt;&lt;form method="POST" action="cgi-win/wincgi.exe"&gt;</td></tr></table><table width=100% ><tr><td class=a14>
您要查询的类型是:</td></tr></table><table width=100% ><tr><td class=a14>
&lt;UL&gt;&lt;LI&gt;A类用户&lt;input name="usertype" type=radio value="A"&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;LI&gt;B类用户&lt;input name="usertype" type=radio value="B"&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;LI&gt;C类用户&lt;input name="usertype" type=radio value="C"&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;LI&gt;D类用户&lt;input name="usertype" type=radio value="D"&gt; </td></tr></table><table width=100% ><tr><td class=a14>
&lt;/UL&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;center&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;input type=submit value="提交"&gt; &lt;input type=reset value="取消"&gt;&lt;/center&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;/pre&gt;&lt;/form&gt;&lt;hr&gt;</td></tr></table><table width=100% ><tr><td class=a14>
&lt;/HTML&gt;</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b>3.编写VC++CGI程序</b></td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
Website为C++程序员提供了一个CCGI类,可在\website目录下找到。该类提供了一些方便的函数,无需程序员编写一些直接与CGI界面打交道的底层工作,充分体现面向对象语言的优势。在VC++4.0中建立一个"Dialog based"工程框架。将CCGI类引入框架,即将cgi.h,cgi .cpp加入程序。然后用VC++的ClassWizard工具创建一个与数据库相对应的CUserSet类,该类继承MFC类库中的CRecordSet类。</td></tr></table><table width=100% ><tr><td class=a14>
主要代码加在wincgi.cpp文件中。</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
//程序:wincgi.cpp</td></tr></table><table width=100% ><tr><td class=a14>
#include "stdafx.h"</td></tr></table><table width=100% ><tr><td class=a14>
#include "wincgi.h"</td></tr></table><table width=100% ><tr><td class=a14>
#include "cgi.h"</td></tr></table><table width=100% ><tr><td class=a14>
#include "userset.h"</td></tr></table><table width=100% ><tr><td class=a14>
……</td></tr></table><table width=100% ><tr><td class=a14>
void ProcessCGI(CCGI *cgi);</td></tr></table><table width=100% ><tr><td class=a14>
BOOL CBaseApp::InitInstance()</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -