当前位置:编程学习 > C/C++ >>

用VC实现在线订货

答案:

  目前电子商务采用的处理模式大多是订货用户在网页上填写订单,发出订货请求,接着WEB服务器上运行CGI程序对用户填写的数据进行一定的处理后,发送到专用的电子商务服务器中,服务器则对发来的用户数据进行一系列校验,验证用户身份及证实所需的订货信息完整后,将订单写入数据库中,并向WEB服务器中的CGI程序发回一个交易成功的信息,证实交易完成。

  我们利用VC++的AppWizard创建一个支持MFC类的控制台模式程序(An application that support MFC),命名为“Eshopping”,修改主程序文件EShopping.cpp如下:

  #include "stdafx.h"

  #include "EShopping.h"

  #include "afxsock.h"

  typedef struct OrderSet //用户自己定义的一个订货单结构
      {
            char UserName[24];
            char Password[12];
            char Goods[24];
            int Count;
            char Addr[256];
      }ORDER;

  ……//省略部分机器生成代码

  int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])

  {
            if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
            {……//省略部分机器生成代码
            }
            else //程序处理的主体
            {
                  cout〈〈"Content-type:Text/HTMLnn";
                  //输出回显给用户的HTML的头
                  cout〈〈"〈HTML〉〈HEAD〉〈TITLE〉〈/TITLE〉〈/HEAD〉〈BODY〉n";

                  char *StreamSize=getenv("CONTENT_LENGTH"); //开始取得用户填写的信息
                  long dataSize=atol(StreamSize);
                  char* buffer[dataSize]=new char[dataSize];

                  ::memset(buffer,0,dataSize);
                  cin〉〉buffer; //取得用户填写的信息
                  char Ware[5][256]; //这个数组用于从获取的字串中分离用户填写的数据
                  ::memset(Ware,0,5?256);

                  char* p=buffer;
                  int Row=0,Col=0;

                  while(Row〈5)//开始处理获取的字串
                  {
                        if(*p= =‘=‘)
                        {
                              //若在字串中遇到“=”号,意味着用户填写的一个项的开始
                              Col=0;
                              p++;
                              while(*p!=‘&&‘)
                              {
                                    //若在字串中遇到“&&”号,意味着用户填写的一个项的结束
                                    if(*p= =‘+‘)
                                          *p=‘ ‘; //字串中的“+”号要转成空格
                                    Ware[Row][Col++]=*p;
                                    p++;
                              }
                              Row++;
                        }
                        p++;
                  }
                  ORDER Order;//处理完字串后,把用户填写的数据填写到一个ORDER结构中

                  memcpy(Order.UserName,Ware[0],24);
                  memcpy(Order.Password,Ware[1],12);
                  memcpy(Order.Goods,Ware[2],24);
                  int Counts=atoi(Ware[3]);
                  Order.Count=Counts;
          &n

上一个:用VC++6.0编写Proxy服务器
下一个:网络游戏外挂制作

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,