1、内容摘要:本课题主要基于电子商务的基本原理,运用PHP开发技术搭建一个动态的网上商城的电子商务网站。它是在Windows系统环境下,以Mysql数据库开发平台,Apache网络信息服务器,采用PHP(Hypertext Preprocessor)技术开发的网上购物系统。本系统分为前台与后台两部分组成,前台主要针对消费者,主要包括商品展示、会员注册、购物车管理、商品收藏管理、订单管理等功能模块;后台由管理员使用,主要包括商品管理、进货管理、订单管理、系统管理等功能模块。通过这些功能的实现,给商家提供一个动态、交互式、具有商品提供、系统管理等功能的电子商务平台。关键字:电子商务,网络购物,数据库开
2、发,PHP开发技术目 录第一章 绪论11.1 电子商务概述11.2 Web服务器平台与Web平台的动态设计技术11.3Web平台系统的开发方法1第二章 系统分析22.1 开发背景与开发意义22.1.1 开发背景22.1.2 系统开发的意义22.2 可行性分析22.2.1 技术可行性分析22.2.2 操作可行性分析32.2.3 经济可行性分析32.3 需求分析32.3.1 初步调查32.3.2 用户需求分析32.3.3 购物流程图42.3.4 数据流程图52.3.5数据字典8第三章 概要设计113.1 总体方案设计113.1.1 系统目标113.1.2 划分子系统113.1.3 系统结构总体设计
3、123.1.4 系统运行环境要求123.2 数据库设计133.2.1 数据库概念结构设计133.2.3 连接数据库19第四章 详细设计204.1 前台设计204.1.1前台总框架204.1.2 用户管理模块224.1.3 商品浏览234.1.4 购物车模块244.2 后台部分264.2.1 后台总体框架264.2.2 管理员登录284.2.3 订单管理294.2.4 商品管理294.2.7 系统管理31第五章 系统测试32第六章 总结32参考文献33II第一章 绪论1.1 电子商务概述电子商务是伴随着信息经济的高速发展而产生的一个较新的概念,是一种新型的商业运营模式。可以概括为:电子商务Web
4、(服务器)IT(信息技术)+企业业务。发展电子商务是不可阻挡的趋势,已逐渐成为企业、商家们不可或缺的营销手段。本系统属于典型的企业与消费者之间 (B2C)类型的电子商务系统。1.2 Web服务器平台与Web平台的动态设计技术目前流行三种最常用的Web服务器平台是:基于Apache HTTP Server的服务器平台、基于网景的NES的服务器平台、基于微软的IIS的服务器平台。Apache HTTP Server可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中
5、。而且PHP与Apache HTTP Server搭配,是业界公认的黄金组合,因此本系统便是采用Apache HTTP Server服务器平台。当前比较流行的Web开发技术有: ASP, PHP,JSP,ASP.NET等。ASP在国内比较流行,但是由于ASP的跨平台能力差,而且安全性不好;JSP在国际上比较流行,适合开发一些企业级电子商务系统,但由于其在技术上和成本上要求都比较高,现在在国内运用的还比较少;ASP.NET是Microsoft .NET Framework中的一组用于构建Web应用程序和XML Web Service的技术平台,有一定的复杂性;而PHP 是秉承Linux 的GNU
6、 风格,借助与源码公开,使他迅速成为世界上目前应用最为广泛的站点制作语言之一。加上它和Linux,Apache 和MySql 的紧密配合,用PHP编写的代码执行起来会更快、更稳定。用PHP编写的代码,不用改变就可以在不同的WEB服务器上、不同的操作系统下运行。相比之下,我们选择了PHP语言来开发本系统。1.3Web平台系统的开发方法在探讨电子商务的基本原理以及WEB相关开发技术的基础上,我们以软件工程方法完成了网上商城系统的开发。开发过程中所做的工作包括:整个系统的需求分析、系统设计和所有模块的具体实现、系统测试等。第二章 系统分析2.1 开发背景与开发意义2.1.1 开发背景21世纪的今天,
7、网络在人们生活中已经日益盛行,越来越多人已经离不开网络。人们已经不再满足于了解最新信息、查找资料等一些传统的网络使用方式,而是过渡到娱乐、购物等新兴的网民生活。网上购物,成了当今广大群众的时尚。而商家,也逐渐重视起网络的作用,充分利用起网络的低成本、高效性来宣传企业形象和销售商品。因此,为了方便广大群众,满足商家的需求,我们专门构建网上商城系统。2.1.2 系统开发的意义长期以来,大部分的销售活动,都是面对面的销售,如:店铺销售、广交会、上门推销等。这些销售活动,都会受到地域、时间、环境等方面的影响,从而给企业、公司等的销售管理带来极大的不便。而且信息的人工管理,也存在诸多缺点。而网上商城,正
8、好能全面解决这样的问题。产品生产-销售-客户订单管理系统软件为企业、公司等的销售管理带来了极大的方便。产品生产-销售-客户订单管理系统能够为用户提供可靠的信息储存和快捷的信息处理手段。作为计算机应用的一部分,使用计算机对企业、公司的产品销售信息进行管理,具有手工管理所无法比拟的优点。因此,开发这样一套管理系统成为很有必要的事情,它能够具体化、合理化的管理单位的销售信息情况,用结构化的思维方式去了解计算机的工作原理。2.2 可行性分析2.2.1 技术可行性分析本系统采用PHP+Mysql+Apache进行开发,其中前台用HTML嵌入PHP进行页面开发和管理用户界面,提示信息完善,界面友好有亲和力
9、;后台采用Mysql数据库开发和管理数据库,部分关键内容采用事务处理机制,具有很强的错误处理能力。本系统的开发环境使用现在特别流行的开源Apache服务器,使用方便、运行稳定、安全可靠。PHP+Mysql+Apache这个国际公认的网站开发黄金组合,在电子商务系统开发上,得到广泛的应用。如易趣网、百度有啊、ecshop等大型电子商务网站。综上所述,本系统在技术方面是可行的。2.2.2 操作可行性分析本系统采用B/S架构,对销售信息进行网上管理,操作简单易懂,对用户来说不需要高深的计算机专业知识,只要管理员能够懂得使用网络,就可以对商城进行使用和维护。2.2.3 经济可行性分析由于本系统属于模拟
10、的网上商城系统,整个系统并不算太大,因此开发成本不算太高。整个开发过程由两个人参与,只需要两台PC机和上述的各种软件,就可以实现全部的开发任务。由于PC机是我们各自原有的,而且无需专门升级硬件;而各种软件,又是能够在网上免费下载的,因此,整个开发成本可以说是非常的低廉,这也为我们以后进一步完善网站提供了非常大的方便。在使用成本上,用户只需要拥有一台能够连接到国际互联网上的计算机,通过注册就可以在世界的任何一个角落使用网站的全部功能和服务。而且对计算机的硬件的需求也不是很高,软件方面也没有特殊的需求,易于广大用的访问与使用。因此,从经济可行性分析来看,这个网站体现了经济实惠,但是功能强大的特点。
11、2.3 需求分析2.3.1 初步调查本次调查主要是由我们两个同学一起通过亲身体验现在各大 B2C 网站的购物流程,如卓越网、百度有啊、淘宝网、京东商城等等,熟悉其实现购物的方式,了解其管理的运作方式和管理业务流程,分析现在 B2C 网上商城的基本运行情况和不足并探讨其需求。同时,参考了相关网站的调查分析报告等。2.3.2 用户需求分析随着互联网的高速发展,Web应用技术也得到了迅速提高。电子商务平台便是基于这些互联技术发展起来的。而基于 B/S体系结构的网上购物系统正是电子商务的典型,系统简单却功能强大。由于客户端服务器(C/S)应用程序可维护性差,而且对客户端计算机要求功能必须相当强大。为了
12、解决这个缺点,浏览器服务器(B/S)应用程序应运而生。客户端只要求安装有浏览器,就可以与服务器连接,运行整个应用程序。与此同时,由于服务端与客户端分离,应用程序的版本不管如何更新,都只会在服务器端进行,这样客户端可以节省大量资源和时间。近年来,B/S结构越来越受到企业和公司等的喜爱和重用,选择B/S结构是当前电子商务系统开发的明智之举,能充分适应市场的需求。本系统便是采用B/S结构进行开发的。2.3.3 购物流程图图2-1 购物流程图2.3.4 数据流图由于原始的数据流程图存在操作的重复性和流程的不合理性,经过我们两个人的讨论,再根据网上商城系统的购物流程,我们采用从总体到局部、逐步细化的办法
13、,绘制出如下的数据流图:第一层:图2-2网上商城顶层数据流图第二层:P0图2-3网上商城第二层数据流图第三层:P1P2.1P2.2P2.3图2-4网上商城第三层用户管理数据流图P3P3.1图2-4网上商城第三层购物车管理数据流图P2P1.1P1.2图2-4网上商城第三层个人账户管理数据流图P4P3.1P3.2图2-4网上商城第三层订单管理数据流图2.3.5数据字典(1) 关键部分数据项(由于篇幅有限,这里仅对部分数据项进行描述)名称:用户登录ID 总编号:11-001 别名:login_id 编号:001 数据值类型:整型 长度:11长度:50名称:用户登录名称 总编号:11-002 别名:l
14、ogin_name 编号:002 数据值类型:字符型 类型:字符长度:30名称:手机 总编号:11-003 别名:phone 编号:003 数据值类型:字符型 类型:字符 长度:13 名称:家庭电话 总编号:11-004 别名:tel 编号:004 数据值类型:字符型 类型:字符 长度:11名称:上次登录时间 总编号:11-005 别名:login_time 编号:005 数据值类型:字符型 类型:时间函数 名称:用户地址 总编号:11-006 别名:user_address 编号:006 数据值类型:字符型 类型:字符 长度:50名称:邮编 总编号:11-007 别名:user_zipcod
15、e 编号:007 数据值类型:字符型 类型:字符 长度:10名称:用户qq 总编号:11-008 别名:user_qq 编号:008 数据值类型:字符型 类型:时间函数 长度:15 名称:商品ID 总编号:11-009 别名:goods_id 编号:009 数据值类型:整型 类型:数值 长度:11 名称:商品名称 总编号:11-010 别名:goods_name 编号:010 数据值类型:字符型 类型:字符 长度:120 名称:商品类型ID 总编号:11-011 别名:type_id 编号:011 数据值类型:整型 类型:数值 长度:5 (2) 数据流描述 数据流编号:D-01 名称:商品信息
16、 别名:olm_goods 简述:管理员在网站系统后台添加的商品 来源:管理员 去向: P3.1 组成: 名称+图片+价格+运费+加件运费+所属类型+所属分类+品牌+ 数量+描述+添加时间+更新时间 数据流编号:D-02 名称:订单 别名:olm_order 简述:用户购买商品生成的信息 来源:用户 去向: P4.1 组成: 订单号+商品ID+支付方式+送货方式+收获地址ID+用户ID+总 价+订单时间+订单状态+备注(3) 数据存储数据流编号:F1 名称:用户信息表 简述:注册网站的用户基本信息总表 组成:用户 ID+用户名+密码+Email+手机号 +上次登录时间 关键字:用户ID 相关联
17、处理:P1.1 P1.2 P2.3数据流编号:F2 名称:地址表 简述:注册网站的用户所填的收货地址 组成:ID+地址+用户ID+收获人+邮编+固定电话号码+手机号码+Email 关键字:ID 相关联处理:P2.2数据流编号:F3 名称:收藏夹表 简述:注册网站的用户添加到个人账户的商品 组成:ID+商品ID +用户ID+收藏时间 关键字:ID 相关联处理:P2.2 数据流编号:F4 名称:短消息表 简述:管理员发给网站注册用户的信息 组成: ID+发给的用户名+内容+时间 关键字:ID 相关联处理:P2.2数据流编号:F5 名称:订单表 简述:用户购买商品确认后生成的信息总表 组成: ID
18、+商品ID+支付方式+送货方式+地址ID+总价 +备注 关键字:ID 相关联处理:P2.1 P4.1 P4.2 P4.3 第三章 概要设计3.1 总体方案设计3.1.1 系统目标(1)提高公司企业用户的经营管理效率,减少管理工作上的重复操作等。 (2)简化操作过程,提高资源的共享能力,增进查询速度。 3.1.2 划分子系统此基于电子商务理论与PHP技术的网上商城购物系统,分前台功能和后台管理功能: (1)前台部分由用户使用,主要包括用户管理(用户登录、注册),商品浏览、购物车管理,个人账户管理。 (2)后台部分由管理员使用,主要包括管理员身份验证,商品管理,订单管理,会员管理,系统管理。3.1
19、.3 系统结构总体设计图 3-1系统功能结构图3.1.4 系统运行环境要求(1)硬件环境要求: 1 GHz以上处理器。 Microsft Windows 支持的VGA 或分辨率更高的监视器。 512MB内存以上。 (2)软件环境要求:本系统是在Microsft Windows XP平台下开发的,所采用的开发语言是PHP,后台采用了MySQL Server 5.0数据库,服务器用Apache。这样的黄金组合,大大的提高了数据处理的速度。 操作系统:Windows XP 系列 数据库:MySQL5.0 (3)语言种类:简体中文版 (4)显示参数:分辨率:1024768;色彩:256 色以上3.2
20、数据库设计 3.2.1 数据库概念结构设计 (1) 系统主要功能模块E-R 图mnm用户送货方式发货商品订购商品名称商品ID商品价格用户ID用户名密码n n n1n n管理员短信息公告发布密码用户名标题时间内容内容发送1 图3-3 实体和实体之间的关系E-R图注:实体集的属性已经部分省略(2)部分相关数据表表3-2管理员信息表(olm_admin)字段名称代码数据类型是否为空管理员ididsmallint(5)not null管理员名称usernamevarchar(60)not null管理员emailemailvarchar(60)not null管理员密码passwordvarchar(
21、255)not null注册时间add_timevarchar(15)not null最新登录时间last_loginvarchar(20)not null最新登录iplast_ipvarchar(11)not null表3-3商品品牌信息表(olm_ brand)字段名称代码数据类型是否为空品牌ididint(7) not null品牌名称namevarchar(50)not null品牌logologovarchar(80)not null备注notestextnot null链接路径urlvarchar(255)not null顺序sorttinyint(3) not null是否显示i
22、s_showtinyint(1) not null表3-4购物车信息表(olm_cart)字段名称代码数据类型是否为空购物车ididmediumint(8) not null用户登录idlogin_idint(11) not null用户session idsession_idvarchar(32)not null商品idgoods_idmediumint(8) not null商品编号goods_snint(11) not null商品名称goods_namevarchar(120)not null单件运费freightdecimal(10,0)not null加件运费addfreightd
23、ecimal(10,0)not null商品质量goods_weightdecimal(10,0) not null市场价格market_pricedecimal(10,2)not null商城价格mall_pricedecimal(10,2)not null商品数量goods_numsmallint(5) not null表3-5收藏夹信息表(olm_collect_goods)字段名称代码数据类型是否为空收藏夹ididmediumint(8) not null用户登录idlogin_idmediumint(8) not null商品idgoods_idmediumint(8) not nu
24、ll添加时间add_timedatetimenot null表3-7商品信息表(olm_goods)字段名称代码数据类型是否为空商品ididmediumint(10) not null编号goods_snint(10)not null名称goods_namevarchar(120)not null商品信息标题goods_titlevarchar(300)not null商品类别idtype_idsmallint(5) not null商品品牌idbrand_idint(7) not null商品分类idcat_idsmallint(7) not null库存goods_numint(11) n
25、ot null库存警告数量warn_numsmallint(3) not null已售数量sold_numint(11) not null商品质量goods_weightdecimal(10,3) not null商品单位unitvarchar(10)not null进货价purchase_pricedecimal(10,2) not null市场价market_pricedecimal(10,2) not null商城价mall_pricedecimal(10,2) not null活动价格promote_pricedecimal(10,2) not null活动开始时间promote_st
26、art_datedatetimenot null活动结束时间promote_end_datedatetimenot null单件运费freightdecimal(10,2) not null加件运费addfreightdecimal(10,2) not null图片名称img_namevarchar(100)not null小图路径small_imgvarchar(255)not null大图路径big_imgvarchar(255)not null原图路径original_imgvarchar(255)not null是否上架is_on_saletinyint(1) not null添加时间
27、add_timedatetimenot null更新时间up_datedatetimenot null排序sortsmallint(4) not null精品推荐is_besttinyint(1) not null新品上架is_newtinyint(1) not null热门商品is_hottinyint(1) not null特价商品is_specialtinyint(1) not null备注noteslongtextnot null表3-8商品分类信息表(olm_goods_cat)字段名称代码数据类型是否为空分类ididsmallint(5) not null分类名称namevarch
28、ar(50)not null类型idtype_idsmallint(5) not null父类idparent_idsmallint(5) not null备注notesvarchar(300)not null顺序sortsmallint(4) not null是否显示导航in_navtinyint(1)是否显示is_showtinyint(1) not null表3-9商品类型信息表(olm_goods_type)字段名称代码数据类型是否为空类型ididsmallint(5) not null类型名称namevarchar(50)not null是否激活enabledtinyint(1) n
29、ot null表3-10订单信息表(olm_order)字段名称代码数据类型是否为空订单ididint(11) not null用户登录idlogin_idint(11) not null收件人地址idaddress_idint(11)not null付款方式paymentvarchar(50)not null配送方式shippingvarchar(50)not null总价格totalint(11) not null下单时间timedatetimenot null表3-11订单动作信息表(olm_order_action)字段名称代码数据类型是否为空订单活动ididmediumint(8)
30、not null订单idorder_idmediumint(8) not null支付状态pay_statustinyint(1) not null配送状态shipping_statustinyint(1) not null订单完成状态order_statustinyint(1) not null登录时间log_timedatetimenot null备注notesvarchar(255)not null表3-12订单商品信息表olm_order_goods)字段名称代码数据类型是否为空订单商品ididint(11) not null订单idorder_idint(11)not null商品i
31、dgoods_idint(11)not null商品名称goods_namevarchar(300)not null商品价格goods_pricedecimal(11,0)not null商品数量goods_numint(7)not null商品质量goods_weightdecimal(11,0)not null表3-15用户登录信息表(olm_user_login)字段名称代码数据类型是否为空用户登录idlogin_idint(10) not null用户登录名称login_namevarchar(30)not null用户emaillogin_emailvarchar(100)not n
32、ull密码login_pwdvarchar(32)not null登录时间login_timedatetimenot null激活状态login_is_activesmallint(1) not null3.2.3 连接数据库在本系统充分发挥PHP5.0支持面向对象编程的特性,将常用的函数封装在一个类里面。比如由于需要多次连接数据库,而且这种连接是一项很消耗资源的操作,因此,在本系统中对数据库连接的部分写成了一个 PHP 文件。文件名为db.inc.php,有需要连接数据库的文件包含这个文件就可以了(关键代码请看附录一)。为了方便,我们专门做了一个数据库的配置文件config.inc.php,
33、用来管理数据库的连接信息,代码如下:数据表的一些常用操作,如数据添加、查询、删除、更新等,由于使用特别频繁,我们也将它特地装到Goods.inc.php文件里面。同时,我们还将一些专门针对某些数据表的操作函数,也封装在这个文件中。后面将直接调用这些函数,由于篇幅有限,不再做具体的介绍(部分关键代码请看附录二)。第四章 详细设计4.1 前台设计4.1.1前台总框架网站前台部分主要提供给用户使用,是系统对外的窗口。主要包括用户注册、登录,商品浏览,购物车管理,个人账户管理等几个部分。由于篇幅有限,本文只对部分模块的实现进行描述。(1) 模块功能介绍 用户管理:注册新用户、登录、修改用户个人资料。
34、商品浏览:在商品的显示介绍页面,可以收藏商品或者加入购物车。 购物车 :添加产品到购物车、购物车信息修改、下订单。订单模块:查询个人订单列表、查询某笔订单的详细信息。个人账户:订单查询,对收藏夹、地址的管理。(2) 前台文件构架 图4-1前台文件结构图(3)网站前台首页的运行结果如下所示:图4-2购物网站首页4.1.2 用户管理模块 (1)新用户注册 要购买商品,需要先注册成为用户,如下图:图4-3 注册新用户部分关键代码如下:if($_POSTreg)if($_POSTlogin_name=|$_POSTlogin_email=)warn(用户名或Email不能为空。,register.ph
35、p);elseif($_POSTlogin_pwd=|$_POSTchecked_pwd=)warn(密码或确认密码不能为空。,register.php);if($_POSTlogin_pwd!=$_POSTchecked_pwd)warn(密码与确认密码不相同。,register.php);if(!$_POSTlicense)warn(请预读并接受用户协议。,register.php);$datalogin_name= $_POSTlogin_name;$datalogin_email= $_POSTlogin_email;$datalogin_pwd = $_POSTlogin_pwd;$
36、info = $user-insertData($name,$data);if($info!=false)warn(会员注册成功!,member.php);$_SESSIONlogin_name=$_POSTlogin_name;else warn(会员注册失败!,register.php); (2)用户登录 用户登录页面主要用来接收用户输入的用户名和密码,并更新用户在网站中的状态信息。会员登录窗口的运行结果如图所示。图4-4 用户登录if($_POSTlog)if($_POSTusername=|$_POSTpwd=)warn(用户名或密码不能为空。,login.php);else$logi
37、n_name =$_POSTusername;$login_pwd =$_POSTpwd; $where=where login_name=$login_name and login_pwd=$login_pwd;$info=$user-getList($name,$where);if($info0login_name=) &( $info0login_pwd)=)warn(用户名或密码有误。,login.php); else$_SESSIONlogin_id =$info0login_id;$_SESSIONlogin_name =$info0login_name;warn(登录成功。,$url); 4.1.3 商品浏览 用户在商品显示页面(goods.php)对具体商品进行详细了解,并在商品显示页面对商品进行收藏或者加入购物车,已注册的会员还可以对商品进行咨询或者评论等。图4-5 商品显示页面关键部分代码如下: $goods = new Goods(); $id= $_GETid;/获取传递过来的参数商品id$tbname = $goods-_goods;$info = $goods-getInfo($tbname,$id);4