版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕 业 设 计(论 文)网上商城购物系统网上商城购物系统系系别:别:计算机工程系计算机工程系专专 业业 名名称称:学学 生生 姓姓名:名:学学号:号:指导教师姓名、职称指导教师姓名、职称:梁宝兰梁宝兰 助教助教完成日期 2009 年 2 月 日i网上商城购物系统摘 要随着 internet 信息技术的高速发展,网上购物已经成为当今社会一种比较流行的购物方式。企业网站在商务活动中发挥越来越大的作用:通过网络,实现及时发布产品,实时更新产品信息,快速地处理订单等功能,更好地服务于客户。网上商城购物系统使购物过程变得轻松、快捷、方便。本系统共分两个部分:前台用户部分和后台管理部份。在前台用户部分中,
2、包括用户在线注册/登录、定购商品、浏览/搜索商品、查询商品信息等操作;后台管理部分包括:商品类别的管理,商品信息的管理、用户订单的管理、客户的管理。目前类似的系统已比较成熟。本系统实现了网上商城购物系统最基本的功能模块,项目进展比较顺利。作者作为该项目的主持人,完成了这些:项目开发总体方案设计、需求分析、概要设计、各部分模块的详细设计码以及对项目的总结。关键词关键词 网上商城,购物车,mysql 5,apache 2,phpii the system of online shoppingabstractwith the rapid development of infermantion tec
3、hnology happened in the internet, shopping online is getting a new-fashioned and popular shopping way. the shopping online system of the company,play an important role with the rapid economic development.the company can sell products online, also the company make issue of various prompt information
4、become easy. the shopping online system establishes a dummy shopping market to make the purchase process become easy,swift and convenient.main functions of this system are as follows:the shopping online system can be divided into two parts:foregrounding and management.the former includes online regi
5、stration,ordering goods,browsing goods,inquiring goodsinformation,etc;the later includes management of goodsinformation and goodscategories,usersorder forms and clients.at present,some similar systems have been developed relatively mature. this system has been basically completed. as the compere of
6、this item,the author had finished such steps:itemsdevlopment and organization,genaral projects designation,demand analysis,summary designation,whole designation and coding for modules,as well as summarizing this item.keywordskeywords:market online,shopping cart, mysql 5,apache 2,php iii目 录1 概述 .11.1
7、 开发背景 .11.2 网上购物的现状 .11.3 论文组织 .22 功能需求分析 .32.1 设计思路 .32.2 系统的功能性需求 .32.3 非功能性需求 .32.4 可行性分析 .32.5 开发本系统选择的主要工具 .42.5.1 开发工具的选择 .42.5.2 数据库的选择 .63 系统设计 .73.1 系统设计 .73.2 系统主要功能模块结构 .73.3 部分模块的数据 .103.3.1 商品搜索数据流图 .103.3.2 用户购买商品数据流图 .113.4 数据库逻辑结构设计 .114 系统功能的具体实现 .144.1 系统开发平台及环境配置 .144.1.1 开发平台 .14
8、4.1.2 环境配置 .144.2 数据库的生成与连接 .144.2.1 数据库的生成 .14iv4.2.2 数据库的连接 .144.3 公共文件的实现 .154.4 各子模块功能的实现 .154.4.1 网站的首页设置 .154.4.2 用户登录和注册 .164.4.3 查询模块 .194.4.4 浏览商品模块 .194.4.5 购物车模块 .224.4.6 结账台模块 .234.4.7 商品类别管理模块 .244.4.8 商品管理模块 .274.4.9 用户管理模块 .284.4.10 订单管理模块 .295 系统测试 .315.1 基于 web 系统的测试 .315.2 部分模块的测试用
9、例 .316 总结 .34参考文献 .35致 谢 .3611 概述1.1 开发背景随着 internet 信息技术的高速发展,网上购物已经成为当今社会一种比较流行的购物方式。不论是腰缠万贯的大富翁、时尚的白领丽人还是普通的工薪阶层,其中大部分人可能都有过网上购物的经历。电子商务成为一个很热门的话题,网络上出现了大量电子商务网站。网络购物系统有着成本低、用户检索方便、地域限制少的特点。其实电子商务包括的内容是很多的,而当前具体的实际运用中有两个非常成功的主流应用,一类是 b2b(business to business),另一类是 b2c(business to consumer) 。b2b 主
10、要是面向企业的,专门为企业提供采购、销售和结算等业务的平台,这种平台对性能、安全和服务要求比较高。b2c 则是大家最熟悉的,它直接面向终端的大众消费者。网上商城购物系统实际上是属于 b2c 的。简单来说,网上购物就是把传统的商店直接搬回家,利用 internet 直接购买自己需要的商品或者享受自己需要的服务。专业地讲,它是交易双方从洽谈、签约以及贷款的支付、交货通知等整个交易过程通过internet、web 和购物界面技术化的 b2c 模式一并完成的一种新型购物方式,是电子商务的一个重要组成部分。因此,有人将此视为一个面向全国乃至全世界的大而统的虚拟商场。1.2 网上购物的现状网上购物在当今发
11、达国家已经显示出较强的发展势头,它在推动国家经济增长方面可以说又是一支崭新的力量。举例来说,gfk 最近一份针对德国网上购物者的调查指出,在 2004 年上半年,德国的在线购物销售额达到 53 亿欧元。gfk 预计,2004 年全年,德国在线购物销售额达到 110 亿欧元之多。相比之下,在我国网上购物还是比较滞后。与短信、游戏等互联网业务相比,电子商务在中国的发展是相对落后的;与电子商务发达的国家相比,中国还处于起步阶段。但是,经过近几年的发展,有越来越多的人认识到“网上订货、送货上门”的方便,也有越来越多的人也开始接受网上购物。由于中国庞大的互联网用户群和经济的快速发展,谁都不会否定电子商务
12、在中国的发展潜力。统计显示,2004 年,我国电子商务交易总额累计达到 4400 亿元人民币。其中,上海电子商务的年交易额达到 743.19 亿元,同比增长 47%,北京、广州的电子商务年交易额分别为 666 亿元和 230 亿元。2005 年 5 月 13 日在沪举行的 2005 中国国际电子商务博览会传出消息,2005 年我国电子商务交易总额有望突破 6000 亿元人民币。cnnic 在其发布的中国互联网络热点调查报告中显示:在我国有 17.9%的网民在半年内有过网络购物经历,在浏览过购物网站的网民中,有 29.6%的人在半年内有过网络购物经历,有过网络购物经历的被访者中有超过 90%的人
13、今后会继续进行网络购物;有263.7%没有购物经历的网民表示今后会尝试网络购物。这些数据表明我国网上购物市场有巨大的潜力。1.3 论文组织在介绍了网上商城购物系统的开发背景、国内外的现状后,本文将在后面的章节里阐述建立网上商城购物系统的具体过程,具体组织结构介绍如下:全文共分为六章:第一章是概述。主要介绍系统开发的背景、意义以及国内外类似项目的研究现状,对网上商城购物系统在国内的发展作了比较详细的分析。第二章主要介绍了本文的需求分析,需求分析是软件开发的非常重要的一个步骤,因此在本章我们进行了比较详细的分析。通过对系统设计思路、开发工具的选择等分析, ,为系统的设计及实现打下一个良好的基础。构
14、建系统的总体结构图,并详细分析了各模块的功能第三章重点介绍了系统的结构和功能框架,构建系统的总体结构图,并详细分析了各模块的功能。通过功能设计出本系统就采用 b/s 三层结构为系统软件架构,并从整体到局部把系统的功能模块化,以系统结构图的形式表现出来;还有就是把这些功能结构进行实体化。第四章是本论文的重点,详细讲解了网上商城购物系统的建立方法及具体步骤,对各个子模块进行分析。对这些子模块做了详略不同的讲解,同时附上部分 php 代码方便对照示例理解。第五章为本文的测试部分,介绍了软件环境的配置及测试结果分析,在测试前提出应测试出的问题,最后得出测试的结论。第六章是总结部分,对所完成的系统进行总
15、结。32 功能需求分析2.1 设计思路网上商城购物系统采用 b/s 结构。b/s 架构是工 ntranet 上的一个典型的分布式信息系统。b/s 结构只需对服务器端的应用平台进行开发和集成,减少了开发、安装和维护费用。建设过程中主要有以下考虑:(1)减少系统对硬件的要求系统主要运行于服务器上,即系统运行的硬件取决于服务器。(2)降低维护成本系统的维护主要集中于服务器端。(3)降低系统升级维护的难度逻辑与视图的分离是的模块相对独立,在业务变更及系统升级和维护时,难度大大降低,极大地提高了工作人员的工作效率。在功能设计和系统实现方面,学校办公自动化系统将提供以下特点:(1)实用性实现网上购物的一般
16、流程,系统方便易用。(2)操作简单保证系统适合不同等级计算机水平的用户,系统操作尽可能简单。(3)代码可读性好要求系统结构清晰,代码简单可读,便于日后维护和扩展。网上商城购物系统开发的总体任务是实现顾客购物与管理员管理的系统化、规范化和自动化。2.2 系统的功能性需求网上商城购物系统共分两个部分:前台用户部分和后台管理部份。为了安全性,管理员登录后台管理部分采用 http 认证技术。前者包括用户在线注册/登录、浏览/搜索商品、查询商品信息、订购商品、购物车、用户信息维护等功能。后台管理包括商品类别管理,商品管理、订单管理、用户管理等模块。2.3 非功能性需求(1)安全性要求。所有访问数据库的操
17、作,必须有日志。(2)时间性要求。保证用户一次最简单查询工作在 1 分钟内完成或者简单的购物流程在 3 分钟内完成。(3)美观性要求。要求界面美观,操作简便。2.4 可行性分析随着计算机网络的发展,上网人数日益增多,人们已经习惯通过网上商城网络上4进行购物和接受服务。因此,我们通过这样的方式,在计算机网络种商品的销售,能够被广大用户所接受,可以拓宽企业的客户群。开发网上商城购物系统的技术已经非常成熟,首先,从硬件上讲,计算机硬件速度现在已经不是问题,大容量高速度的硬盘十分普遍,同时网络的速度普遍可以达到100m,这些为系统的运行打下坚实的基础。从软件的角度上讲,数据库技术已经相当成熟(目前用得
18、比较多的有 sqlserver,oracle,mysql 等) ,并且处理能力也非常强,这为数据的存储和处理打下了坚实的基础,同时,开发网站的工具也非常多(比如:asp,jsp,php 等) ,并且相当成熟。有了这些技术的支持,我们成功开发一个办公自动化系统没有任何技术风险。2.5 开发本系统选择的主要工具2.5.1 开发工具的选择目前开发动态网站的主要工具有:asp,jsp 和 php。asp:(1)使用 vbscript 简单易懂的脚本语言,结合 html 代码,即可快速地完成网站的应用程序。 (2)无须 compile 编译,容易编写,可在服务器端直接执行。 (3)使用普通的文本编辑器,
19、如 windows 的记事本,即可进行编辑设计。(4)与浏览器无关(browser independence),客户端只要使用可执行 html 码的浏览器,即可浏览 active server pages 所设计的网页内容。active serverpages 所使用的脚本语言均在 web 服务器端执行,客户端的浏览器不需要能够执行这些脚本语言。(5)active server pages 能与任何 activex scripting 语言兼容。除了可使用 vb script 或 javascript语言来设计外,还通过 plugin 的方式,使用由第三方所提供的其它脚本语言,譬如rexx、p
20、erl、tcl 等。脚本引擎是处理脚本程序的 com(component object model)对象。(6)可使用服务器端的脚本来产生客户端的脚本。(7)activex 服务器组件具有无限可扩充性。可以使用 visual basic、java、visual c、cobol 等程序设计语言来编写你所需要的 activex server component。php:数据库连接 php 可以编译成具有与许多数据库相连接的函数。php 于公元1994 年由 rasmus lerdorf 开始计划发展,至 1995 年以 personal home page tools(php 即 tools)开始
21、对外发表第一个版本。 php 的早期版本中,只提供了访客留言本、访客计数器等简单的功能。随后在新的成员加入开发行列之后,同在 1995 年中,第二版的 php 问世了,第二版定名为 php/fi(form interpreter)。php/fi 并加入了mysql 的支持,自此奠定了 php 在动态网页开发上的影响力。在 1997 年底,有一万五干个 web 网站使用 php/fi;在 1997 年中,使用 php/fi 的 web 网站成长到超过五万个。php 跟 apache 服务器紧密结合的特性,加上不断的更新及加入新的功能,并且它几乎支持所有主流与非主流数据库,再以它能高速的执行效率,
22、使得 php 在 1999 年中的建站用户就超过了十五万。它的源代码完全公开,在 open source 意识抬头的今天,5它更是这方面的中流砒柱。不断地有新的函数库加入,以及不停地更新的活力,使得php 无论在 unix 或是 win32 的平台上都可以有更多新的功能。它提供丰富的函数,使得在程序设计方面有着更好的支持。php 与 mysql 是现在绝佳的群组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松地修改编码以适应这样的变化。phplib 就是最常用的可以提供一般事务需要的一系列基库。但 php 提供的数据库接口支持彼此不统一,比如对 o
23、racle,mysql,sybase 的接口,彼此都不一样。这也是php 的一个弱点。jsp:(1)将内容的产生和显示进行分离,使用 jsp 技术,web 页面开发人员可以使用html 或者 xml 标识来设计和格式化最终页面。使用 jsp 标识或者小脚本来产生页面上的动态内容。产生内容的逻辑被封装在标识和 javabeans 群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。如果核心逻辑被封装在标识和 beans 中,那么其他人,如 web 管理人员和页面设计者,能够编辑和使用 jsp 页面,而不影响内容的产生。在服务器端,jsp 引擎解释 jsp 标识,产生所请求的内容(例如,通过存
24、取javabeans 群组件,使用 jdbc 技术存取数据库) ,并且将结果以 html(或者 xml)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于 html 的 web浏览器的完全可用性。(2)强调可重用的群组件,绝大多数 jsp 页面依赖于可重用且跨平台的组件(如:javabeans 或者 enterprise javabeans)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采
25、用标识简化页面开发,web 页面开发人员不会都是熟悉脚本语言的程序设计人员。javaserver page技术封装了许多功能,这些功能是在易用的、与 jsp 相关的 xml 标识中进行动态内容产生所需要的。标准的 jsp 标识能够存取和实例化 javabeans 组件,设定或者检索群组件属性,下载 applet,以及执行用其它方法更难于编码和耗时的功能。通过开发定制化标识库,jsp 技术是可以扩展的。今后,第三方开发人员和其它人员可以为常用功能建立自己的标识库。这使得 web 页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。jsp 技术很容易整合到多种应用体系结构中,以
26、利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用 java 技术家族的一部分,以及 java 2ee 的一个成员,jsp 技术能够支持高度复杂的基于 web 的应用。由于 jsp 页面的内置脚本语言是基于 java 程序设计语言的,而且所有的 jsp 页面都被编译成为 java servlet,jsp 页面就具有 java 技术的所有好处,包括健壮的存储管理和安全性。作为 java 平台的一部分,jsp 拥有 java 程序设计语言“一次编写,各处执行”的特点。随着越来越多的供货商将 jsp 支持加入到他们的产品中,您可以使用自己所选择的服务器和工具,修改工具或服务器并不影
27、响目前的应用。性能比较:有人做过试验,对这三种语言分别做回圈性能测试及存取 oracle 数据6库测试。在循环性能测试中,jsp 只用了令人吃惊的四秒钟就结束了 20000*20000 的回圈。而 asp、php 测试的是 2000*2000 循环(少一个数量级) ,却分别用了 63 秒和 84秒。 (参考 phplib) 。数据库测试中,三者分别对 oracle 8 进行 1000 次insert,update,select 和 delete:jsp 需要 13 秒,php 需要 69 秒,asp 则需要 73 秒。总之,asp,php,jsp 三者都有相当数量的支持者,由此也可以看出三者各
28、有所长。选择开发工具的依据是:(1)能够满足项目的需要, (2)开发人员相当熟悉该工具。由于本人对 php 熟悉,因此选择 php 作为开发工具。2.5.2 数据库的选择目前使用比较多的数据库系统有 sql server、oracle、mysql 等。选择一个合适的数据库是非常重要的。mysql 是最受欢迎的开源 sql 数据库管理信息,尽管 mysql 在许多方面不如 oracl,但是其价格比较低,其性能完全能够满足中小企业的应用。上面已提到 php 与 mysql 是现在绝佳的群组合。综合考虑,本系统数据库选择了 mysql。73 系统设计3.1 系统结构系统结构如图 3-1 所示。网上商
29、城购物系统用三层结构:用户层web 服务层数据层。图 3-1 系统结构用户层:就是最终用户,授权使用浏览器访问站点的用户。web 服务层:是空间提供的 web 应用服务器,所有的业务逻辑结构和功能模块都部署在这个层,响应用户要求,调用业务逻辑,访问数据。数据层:也是空间提供的数据库服务器,所以数据都保存数据库服务器上。3.2 系统主要功能模块结构系统功能模块结构如图 3-2 所示:图 3-2 系统功能结构图网上商城购物系统前台人力资源管理用户模块查询模块浏览商品模块首页推荐模块商品类别管理模块商品管理模块用户管理模块订单管理模块购物车模块结账台模块8在前台,可以将系统分为用户模块,包括注册、登
30、录、查看个人信息和查看个人订单 4 个方面;查询模块;浏览商品模块包括商品的种类显示;首页推荐模块;购物车模块;结账台模块。在后台,可以将系统分为商品类别管理模块、商品管理模块、用户管理模块、订单管理模块。下面将介绍各个模块的具体功能设计。1、用户模块用户模块包含以下几个部分,如图 3-3 所示:图 3-3 用户模块(1)登录:注册用户必须登录后才可以购物。(2)注册:提供给用户注册为会员的功能。(3)查看个人信息:用户可以查看注册时所填信息,并且可以修改 e-mail 地址、真实姓名和登录密码。(4)查看个人订单:用户可以查看个人订单列表已经订单的详细情况,包括所订商品的具体信息及订货人的具
31、体信息。2、查询模块在查询模块中,输入关键字,就可以进行查询了。查询结果有全部符合和任意符合两种。3、浏览商品模块浏览商品模块包含以下几个部分,如图 3-4 所示:图 3-4 浏览商品模块(1)浏览商品种类列表:在网上商城购物系统的左方导航菜单中显示了商品列表用户模块登录注册查看个人信息查看个人订单浏览商品模块浏览商品种类列表浏览商品列表商品详细内容9名称,并提供超链接显示商品列表。(2)浏览商品列表:显示商品某种类的商品和此种类商品的数量。(3)商品详细内容:显示商品名称、图片、所属分类,商品详细介绍,是否为推荐商品,显示加入购物车按钮和订购按钮(可以修改购买数量) 。4、首页推荐模块在购物
32、系统首页中显示推荐商品的图片、名称、价格等信息,显示次序将最新发布的商品放在前,如此类推。商品列表类目也有受推荐的商品,那些标题前面加“星号”的,排列在列表的开头的商品就是推荐商品。5、购物车模块购物车模块包含以下几个部分,如图 3-5 所示:图 3-5 购物车模块(1)浏览购物车:显示商品图片、商品名称、商品单价、商品数量和总价(包括每件商品的总价合计和所有商品总价合计) 。(2)添加商品到购物车。(3)编辑购物车:修改购物车中已存在商品的数量,并更新购物车。(4)取消购物车中的商品:将购物车中的商品删除。(5)清空购物车:清空购物车中所有商品。6、结账台模块在购物车模块中通过点击按钮进入结
33、账台,也可以在页面公用左边的导航菜单中进入结账台。结账台的功能是用户填写收货人信息后生成订单。7、商品类别管理模块购物车模块包含以下几个部分,如图 3-6 所示:图 3-6 商品类别管理模块商品列表管理模块建立分类修改分类删除分类购物车模块浏览购物车编辑购物车清空购物车取消购物车中的商品添加商品到购物车10(1)建立分类:建立新的商品类目名称。(2)修改分类:通过选择分类,修改它的名称。(3)删除分类:删除商品的某类别。8、商品管理模块在商品管理模块中,显示所选择商品类别的商品列表,可以增加新的商品,也可以通过链接修改商品的名称、价格、图片、所属分类等详细信息。9、用户管理模块在用户管理模块,
34、显示所有注册用户的用户名、密码、注册时间等注册信息以及用户数量。10、订单管理模块订单管理模块包括查看订单信息和修改订单状态 2 个部分,如图 3-7 所示:图 3-7 订单管理模块(1)查看订单信息:管理员在订单管理模块中查看订单列表,点击可查询该订单的详细情况,包括收货人信息、商品清单、价格、数量等信息。同时,点击商品名称可进入该商品的详细介绍表单。(2)修改订单状态:在订单状态中,有订单正在处理和已处理 2 种状态。管理员可以点击按钮在两种状态中进行切换。已处理的订单显示处理的日期时间。3.3 部分模块的数据流图数据流图简称 dfd,是 sa 方法中用于表示系统逻辑模型的一种工具。它以图
35、形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。本系统的模块多,在这里只给出部分模块的数据流图。其中,基本图形符号:“”箭头表示数据流;“”圆或椭圆表述加工;“=”双杠表示数据存储;“”方框表示数据的源点或终点。3.3.1 商品搜索数据流图 订单管理模块查看订单信息修改订单状态11图 3-8 商品搜索数据流图3.3.2 用户购买商品的数据流图图 3-9 用户购买商品的数据流图3.4 数据库逻辑结构设计数据库是数据库应用程序的重要组成部分。一个设计结构合理的数据库对于应用程序的开发效率和程序的性能都是非常重要的。根据系统需求,本系统在 mysq
36、l 5 数据库中建立了如下 5 个数据表。(1) user 表(用户信息表) ,此表主要用于保存注册用户的基本信息,如表 3-1所示。表 3-1 user 表字段名数据类型长度主键说明接接收收查查询询用用户户分分析析查查询询商商品品信信息息表表商商品品类类目目表表商商品品关关键键字字查查询询信信息息用用户户用用户户名名、密密码码网网上上商商城城购购物物系系统统浏浏览览商商品品用用户户信信息息选选择择商商品品要要购购买买的的商商品品购购物物车车商商品品列列表表 好好选选的的 品品商商结结账账台台商商 品品 列列 表表 信信 息息确确定定购购买买信信息息管管理理员员处处理理订订单单发发货货 商商
37、品品 信信息息订订单单订订购购的的商商品品处处理理好好的的订订单单发发货货信信息息12id自动编号10是用户 iduser_name字符30否用户名passwd字符30否密码u_type字符10否用户类型:customer(普续表 3-1通用户)、admin(管理员)email字符50否电子邮件realname字符30否真实姓名regdate日期/时间默认否注册时间(2) products 表(商品信息表) ,此表主要用于保存商品的详细情况,如表 3-2所示:表 3-2 products 表字段名数据类型长度主键说明product_id自动编号10是商品 idcategory_id整型10否商
38、品类别 idproduct_name字符50否商品名price浮点默认否价格detail文本默认否商品详细说明is_commend短整型1否是否为推荐商品photo字符255否商品图片位置post_datetime日期/时间默认否商品上传时间(3) categories 表(商品类目表) ,此表主要用于保存商品的分类,如表 3-3 所示。表 3-3 categories 表字段名数据类型长度主键说明category _id自动编号10是商品类别 idcategory_name字符50否商品类别名(4) carts 表(购物车表) ,此表主要用于保存当前用户购物车的相关信息,如表 3-4 所示。
39、表 3-4 carts 表字段名数据类型长度主键说明13cart _id自动编号10是购物车 idsession_id字符32否当前用户的 session_idproduct_id整型10否商品 idnumber整型10否商品数目(5) orders(订单表) ,此表主要用于保存发布的各种内容的相关信息,如表 3-5 所示。表 3-5 orders 表字段名数据类型长度主键说明order _id自动编号10是订单 id,根据提交订单时间转换而来session_id字符32否购物车的 session_iduser_name字符30否用户名rec_name字符30否收货人姓名email字符50否电
40、子邮件address字符200否收货人地址total_price浮点默认否所购商品总价postcode字符10否邮政编码tel_no字符20否收货人电话content文本默认否备注信息state短整型1否状态sendtime整型10否处理时间144 系统功能的具体实现4.1 系统开发平台及环境配置4.1.1 开发平台开发工具:dreamweaver 8测试环境:apache 2,window xp 4.1.2 环境配置系统在编写 php 之前,需要安装一个运行 php 的环境,即 apache 2 服务器。还需要安装数据库,本系统选择 mysql 5。4.2 数据库的生成与连接4.2.1 数据
41、库的生成根据已经得到的数据库逻辑结构,在 mysql 5 数据库中创建数据表。为了防止网页浏览者猜测出数据库存放路径而直接将数据库下载到客户端,窃取数据库中的数据或者恶意地修改/删除数据库中的数据,数据库文件的后缀名可以更改为任何格式,在数据库设计中是一种比较好的数据库保护措施。4.2.2 数据库的连接动态网页需要与数据库进行交互,每次交互都必须进行连接,为了提高代码的复用性,在本系统中,将数据库的相关连接定义在一个叫 config.inc.php 的公共文件里,凡是牵涉数据库连接操作的网页只要该文件包含 include 进去,就可以调用该段初始化代码程序。定义数据库连接的源代码如下:?php
42、/连接数据库的定义define(db_user, root); /用户名define(db_password, 3558883);/密码define(db_host, localhost); /数据库主机地址define(db_name, php_shop); /数据库/打开数据库连接$db = mysql_pconnect(db_host, db_user, db_password);if (!$db) die(数据库连接失败!); exit;/选择数据库15mysql_select_db (db_name);?4.3 公共文件的实现为了使代码能重复利用,实现代码的重用性,将一些常用的功能代
43、码单独写在一个文件内。在使用时用 include 关键字把这些代码包含到文件中即可。本系统把这些内容包含在系统配置文件和公用文件中。其中系统配置文件 config.inc.php 包括系统参数设置,公共函数设置,以及系统的初始化程序。在系统前台页面用到的公共文件分别是 header.inc.php 和 footer.inc.php,在系统后台管理页面中用到的公共文件是admin/header.php.以检查电子邮件地址格式是否正确的公共函数为例,实现如下:/功能:检查电子邮件地址格式是否正确/输入:电子邮件地址/输出:true 或 falsefunction checkemail($email
44、) $check=/0-9a-za-z_-+0-9a-za-z_-+(.0-9a-za-z_-+)0,3$/;if(preg_match ($check, $email)return true;elsereturn false;4.4 各子模块功能的实现4.4.1 网站的首页设置系统首页分为左右两个部分,如图 4-1 所示。页面左侧为商城公告、搜索栏、登录情况显示(如果用户已登录,则会显示“查看个人信息”和“查看个人订单”按钮)和网站导航内容。页面右侧可以分为“推荐”和“商品列表”两个栏目。 “推荐”栏目是主要显示推荐商品的,是指那些在 products 表中 is_commend 字段值为
45、1 的商品。“商品列表”栏目是按照商品分类目录显示的,每个商品的分类目录下,最多显示 5件商品。单击商品名称后面的手推车图标可以将选中的商品放入购物车内。16图 4-1 首页4.4.2 用户登录和注册用户注册页面的作用是生成一个进行用户注册的表单界面。注册内容主要包括用户名、密码、e-mail 地址和真实姓名等,其中真实姓名为可选内容。注册流程如图 4-2 所示。注册表单提交后,程序将对提交的数据进行合法性检验,并返回注册是否成功的信息提示。其运行界面如图 4-3 所示。 图 4-3 用户注册页面图 4-2 用户注册流程开始接接收收用用户户输输入入的的用用户户名名用用户户名名重重复复吗吗?n接
46、接收收用用户户输输入入的的密密码码接接收收用用户户输输入入的的e-maile-mail合合法法吗吗?接接收收用用户户的的其其它它信信息息y结束17通过该页面将数据提交到 add_user.php 页面做进一步检查并创建新用户记录。关键代码如下: 0) exitmessage(该用户已经存在!); ?用户登录页面则检查是否存在匹配的用户记录。用户登录界面如图 4-4 所示。用户匹配后,将用户名存放到 session 中。前台用户登录流程如图 4-5。如果在其他页面中读取到该 session 值,说明用户已经登录,否则说明用户尚未登录。18图 4-4 用户登录页面图 4-5 前台用户登录流程用户登
47、录后,则在网页左侧导航菜单中显示“查看个人信息”和“查看个人订单”按钮。用户可以对个人信息进行维护,也可以查看订单。而用户要登录后台界面,则除了在上述用户登录界面输入正确的管理员账户和密码,还要经过 http 认证,关键代码如下:if ($_serverphp_auth_user=admin & $_serverphp_auth_pw=admin) ; /成功登录 else header(www-authenticate:basic realm=欢迎登录商城管理系统); header(http/1.0 401 unauthorized); die(请输入正确的账号与密码!); 界面如下
48、:程序获取用户名和密码系统验证进入前台重新输入用户名或密码错误用户名和密码正确19图 4-6 后台用户登录验证4.4.3 查询模块在页面左侧的公用头部页面可以输入关键字查询商品,结果显示全部符合或者任意符合关键字的商品列表以及数目统计。下图为输入关键字电子商务系统的查询结果:图 4-7 搜索商品结果4.4.4 浏览商品模块浏览商品模块包括浏览某类目商品列表和浏览具体商品详细情况功能,并且可以通过连接购买商品,进入购物车和结账台。除查看某类目商品列表和商品信息外,其他功能要登录才能进行。1、按分类查看商品列表在页面左侧公用头部中,显示了商品分类的超级链接,用户点击链接可以进入该分类商品列表。列出
49、商品类别目录的核心代码如下:20?php/列出商品目录$sql = select * from categories order by category_name;$result = mysql_query($sql);while($row = mysql_fetch_array($result)echo ;echo htmlspecialchars($rowcategory_name);echo ;?如图 4-8 所示,此时可以在下拉式菜单中选择商品分类显示:图 4-8 按分类查看商品2、分页显示商品信息程序根据选择的商品类别 catid,并读取满足条件的商品,计算满足的记录总数,然后根据偏
50、移量$offset 确定在数据库中获取记录的起始位置,从而确定分页条件。核心代码如下:?php$each_page = each_page; /每页最多允许显示的记录数 $offset = intval($_getoffset);/记录偏移量 $category_id = intval($_getcatid); /商品类别 id21/取得该类商品记录总数$sql = select count(*) from products where category_id=$category_id;$result = mysql_query($sql);$row = mysql_fetch_row($re
51、sult);$total = $row0; /商品总数/规范$offsetif($offset $total) $offset = $total; ?php /为分页准备 /输出上一页的链接 $last_offset = $offset - $each_page; if($last_offset上一页a href=?offset=&catid=上一页=$total) ?下一页a href=?offset=&catid=下一页3、显示商品的详细信息22点击商品的名称,可以链接到商品的详细信息表单,包括显示商品所属分类、图片、价格详细介绍、是否为推荐商品等信息,如图 4-9 所示。
52、需要购买商品时,可以在此处修改购买商品的数量,点击“加入购物车”按钮或者“我要订购”链接即可进入购物车确定购买。图 4-9 查看商品详细情况4.4.5 购物车模块购物车模块是前台用户端程序中非常关键的一个功能模块,帮助用户完成商品的选购。对购物车的操作可分为两种情况:(1)对购物车中的一件商品的操作。例如添加新商品,移除商品,以及更新指定商品的数量等。 (2)对购物车全部商品的操作。例如更新全部商品的数量,清空购物车等。购物车页面如图 4-10 所示。列表中包括商品名称、单价、所购数量、价格小计,以及总价格等信息。图 4-10 购物车页面要显示购物车中的上述内容,也必须使用多表联合查询的方式。
53、这里是购物车中的 carts 表和商品信息表通过共同的 product_id 字段进行关联。因此,购物车的查询语句可以写为:select s.*, s.number*p.price as amount, duct_id, duct_name, p.price, p.photo from products p23join carts s on duct_id=duct_idwhere session_id=$session_idorder by duct_name desc通过 s.number 与 p.price 的乘机可以每种商品的价格小计
54、amount.对 amount 求和就得到全部商品的总价。购物车中有两个用于更新的程序,分别是 upcart.php 和 docart.php,有不同的操作方法,其中 upcart.php 用于更新购物车(包括清空购物车) ,docart.php 则用于更新购物车中的一种商品数量。当程序执行后,将自动跳转到购物车页面(mycart.php) 。4.4.6 结账台模块当用户进入结账台后,按正确填写收货人信息后可生成订单。当然,此操作需要登录后才能进行。如图 4-11 所示,结账台包括需要收货人填写的表单和购物车商品列表两部分。图 4-11 结账台页面如图 4-12,生成订单后返回订单信息页面,点
55、击其中的商品名称可进入查看商品的详细信息。24图 4-12 返回订单信息页面由上面几个模块的实现可以看出,购物流程是面向顾客的:图 4-13 购物流程4.4.7 商品类别管理模块以下这四个模块是系统后台管理的组成部分,只有授权用户方可使用。作为后台管理页面,本节中所有程序头部都包含了 admin/header.php 文件。它主要用于进行http 身份认证以及输出头部页面的信息。 商品类别管理页面包括建立分类、修改分类、删除分类的表单页面,如图 4-14 所示。页面按功能分为 3 部分,每一部分都是一个 form 表单,表单中包含了必要的按钮、文本框或下拉选单等基本元素。此外每个表单都包括一个
56、名为“action”隐藏域,它定义了所在表单的作用。action 的值可以是“addcat” 、 “rencat” 或“delcat” ,分别代表建立、改名或删除分类的功能。图 4-14 商品类别管理页面当单击页面中的“新建分类” 、 “修改分类”或“删除分类” ,页面执行对应的操作,代码如下: /添加类别名称 if($action = addcat) if(empty($category_name) exitmessage(请填写类别名称!); 商品目录商品信息推荐商品查询商品购物车客户登记生成订单下订单通知汇款25 /检查类别名是否重名 $sql = select * from categ
57、ories where category_name=$category_name; $result = mysql_query($sql); if(mysql_num_rows($result)0) /类别名已经存在,输出错误信息 exitmessage(类别名已经存在,请选择其他名称!); else /类别名不存在,添加新类别 $sql = insert into categories (category_name) values($category_name); $result = mysql_query($sql); exitmessage(新建类别已经成功!, category.php
58、); /修改类别名称 elseif($action = rencat) /要修改类别没有选择 if(empty($category_id) exitmessage(请选择要修改的类别!); /类别名称没有填写 elseif(empty($category_name) exitmessage(请填写新的类别名称!); /检查类别名是否重名 $sql = select * from categories where category_name=$category_name and 26category_id$category_id; $result = mysql_query($sql); if(
59、mysql_num_rows($result) 0) /类别名已经存在,输出错误信息 exitmessage(类别名已经存在,请选择其他名称!); else /类别名不存在,修改类别名 $sql = update categories set category_name=$category_name where category_id=$category_id; $result = mysql_query($sql); exitmessage(类别名称已经修改成功!, category.php); /删除类别 elseif($action = delcat) /要删除类别没有选择 if(emp
60、ty($category_id) exitmessage(请选择要删除的类别!); /检查该类别下是否存在商品 $sql = select * from products where category_id=$category_id; $result = mysql_query($sql); if(mysql_num_rows($result) 0) /该分类下存在商品,无法删除类别 exitmessage(该类别下还存在商品,无法删除!); else /删除类别名27 $sql = delete from categories where category_id=$category_id; $result = m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药剂科年终工作汇报与未来规划计划
- 信阳师范大学《MG动画》2022-2023学年第一学期期末试卷
- 西京学院《景观小品设计》2023-2024学年第一学期期末试卷
- 西华师范大学《英语演讲与辩论》2023-2024学年第一学期期末试卷
- 西华大学《装饰基础》2021-2022学年第一学期期末试卷
- 西昌学院《版式设计》2022-2023学年第一学期期末试卷
- 西北大学《心理危机干预专题》2023-2024学年第一学期期末试卷
- 西北大学《色彩构成》2021-2022学年第一学期期末试卷
- 西北大学《包装设计》2023-2024学年第一学期期末试卷
- 11.2+化学肥料-2023-2024学年九年级化学人教版下册
- DBS52 011-2016 食品安全地方标准 贵州辣椒面
- 写作《记述与动物的相处》同步课件 2024-2025学年七年级语文上册(统编版2024)
- 西学中题库及答案
- 国家中医药管理局发布的406种中医优势病种诊疗方案和临床路径目录
- 中西文化鉴赏智慧树知到期末考试答案章节答案2024年郑州大学
- (医学课件)带状疱疹PPT演示课件
- 中职英语新高教版基础模块1unit4school-life
- 语法5 复杂短语的分析[实用课资]
- 损伤、中毒的外部原因
- ETF基础篇--特有概念、计算逻辑及模板---文库版(现金差额、现金替代、ETF申赎、计算模板)
- 便利店进货详细商品清单.xls
评论
0/150
提交评论