网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
用VC++编写CGI程序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
价格表。系统环境采用Windows 95,数据库采用FoxP ro2.5, WWW Server采用Website。

1.建立数据库
    本例的CGI程序是通过ODBC连接数据库,因此数据库建完后,应用32位ODBC驱动器加以登记。

2.编写HTML程序
    使用者可在屏幕上选择一服务类型,再按"提交"键,即可查询这一服务类型的各价格栏目。其HTML文本描述如下:
<HTML>
<HEAD>{TITLE>维科公司internet服务收费标准</TITLE></HEAD>
<pre><H1>维科公司internet服务收费标准</H1>
</P>
<hr><form method="POST" action="cgi-win/wincgi.exe">
您要查询的类型是:
<UL><LI>A类用户<input name="usertype" type=radio value="A">
<LI>B类用户<input name="usertype" type=radio value="B">
<LI>C类用户<input name="usertype" type=radio value="C">
<LI>D类用户<input name="usertype" type=radio value="D">
</UL>
<center>
<input type=submit value="提交"> <input type=reset value="取消"></center>
</pre></form><hr>
</HTML>

3.编写VC++CGI程序

    Website为C++程序员提供了一个CCGI类,可在\website目录下找到。该类提供了一些方便的函数,无需程序员编写一些直接与CGI界面打交道的底层工作,充分体现面向对象语言的优势。在VC++4.0中建立一个"Dialog based"工程框架。将CCGI类引入框架,即将cgi.h,cgi .cpp加入程序。然后用VC++的ClassWizard工具创建一个与数据库相对应的CUserSet类,该类继承MFC类库中的CRecordSet类。
主要代码加在wincgi.cpp文件中。


//程序:wincgi.cpp
#include "stdafx.h"
#include "wincgi.h"
#include "cgi.h"
#include "userset.h"
……
void ProcessCGI(CCGI *cgi);
BOOL CBaseApp::InitInstance()
{
CCGI cgi(m-ipCmdLine); //实例化CCGI类,并用命令行参数初始化
if(cgi.CalledAsCGI())
{
try
{
ProcessCGI(&cgi);
//在此做所有真正的工作
}
catch(CException* e)
{
cgi.HandleException(e);
//异常处理
e->Delete();
}
}
return FALSE;
}
void ProcessCGI(CCGI *cgi)
{
int i;
CString strTemp, strWebmaster, strReferer;
strWebmaster=cgi->GetCGIVar("Server Admin");
//获得Server管理者的E-mail地址。
strReferer=cgi->GetCGIVar("Referer"); //获得主页的URL路径。
CStringArray csaFields;
cgi->EnumFormFieldNames(csaFields);
//取得所有变量名,放在数组中。
cgi->WriteHTMLHeader();
cgi->WriteHTMLBody("<HEAD><TITLE>VC++CGI test</TITLE></HEAD>\015\012");
cgi->WriteHTMLBody("<BODY>\015\012");
CString csaFieldVal;
csaFieldVal=cgi->GetFormField(csaFields[0]);
//得到第一个变量的值,即"usertype"变量的值。
cgi->WriteHTMLBody("<h1>internet服务收费标准查询结果</h1><hr>");
CUserSet m-user;
//实例化CUserSet类
char sfilter[80];
wsprintf(sfilter,"USER-TYPE=''%s'''''',csaFieldVal);
m-user.m-strFilter=sfilter;
//设置筛选器。
m-user.Open();
strTemp="<h2>"+m-user.m-USER-TYPE+"类用户"+"</h2>\015\012";
cgi->WriteHTMLBody(strTemp);
strTem
  • 下一篇资讯: 单独使用CRecordSet
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号