毕业设计论文(范文)

上传人:沈*** 文档编号:80452023 上传时间:2022-04-25 格式:DOC 页数:41 大小:1.54MB
收藏 版权申诉 举报 下载
毕业设计论文(范文)_第1页
第1页 / 共41页
毕业设计论文(范文)_第2页
第2页 / 共41页
毕业设计论文(范文)_第3页
第3页 / 共41页
资源描述:

《毕业设计论文(范文)》由会员分享,可在线阅读,更多相关《毕业设计论文(范文)(41页珍藏版)》请在装配图网上搜索。

1、毕 业 设 计(论 文)网上商城购物系统系别:计算机工程系专业名称:学生姓名:学号:指导教师姓名、职称:梁宝兰 助教完成日期 2009年 2 月 日网上商城购物系统摘 要随着Internet信息技术的高速发展,网上购物已经成为当今社会一种比较流行的购物方式。企业网站在商务活动中发挥越来越大的作用:通过网络,实现及时发布产品,实时更新产品信息,快速地处理订单等功能,更好地服务于客户。网上商城购物系统使购物过程变得轻松、快捷、方便。本系统共分两个部分:前台用户部分和后台管理部份。在前台用户部分中,包括用户在线注册/登录、定购商品、浏览/搜索商品、查询商品信息等操作;后台管理部分包括:商品类别的管理

2、,商品信息的管理、用户订单的管理、客户的管理。目前类似的系统已比较成熟。本系统实现了网上商城购物系统最基本的功能模块,项目进展比较顺利。作者作为该项目的主持人,完成了这些:项目开发总体方案设计、需求分析、概要设计、各部分模块的详细设计码以及对项目的总结。关键词 网上商城,购物车,MySQL 5,Apache 2,PHP THE SYSTEM OF ONLINE SHOPPINGAbstractWith the rapid development of infermantion technology happened in the Internet, shopping online is get

3、ting 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 become easy. The shopping online system establishes a du

4、mmy 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 registration,ordering goods,browsing goods,inquiring goodsin

5、formation,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 this item,the author had finished such steps:itemsdevlop

6、ment and organization,genaral projects designation,demand analysis,summary designation,whole designation and coding for modules,as well as summarizing this item.Keywords:market online,shopping cart, MySQL 5,Apache 2,PHP 目 录1 概述11.1 开发背景11.2 网上购物的现状11.3 论文组织22 功能需求分析32.1 设计思路32.2 系统的功能性需求32.3 非功能性需求3

7、2.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开发平台144.1.2环境配置144.2 数据库的生成与连接144.2.1数据库的生成144.2.2数据库的连接144.3 公共文件的实现154.4 各子模块功能的实现154.4.1网站的首页设置154.4.2用户登录和注册164.4.3查询模

8、块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 部分模块的测试用例316 总结34参考文献35致 谢36IV1 概述1.1 开发背景随着Internet信息技术的高速发展,网上购物已经成为当今社会一种比较流行的购物方式。不论是腰缠万贯的大富翁、时尚的白领丽人还是普通的工薪阶层,其中大部分人可能都有过网上购物的经历。电子商务成为一个很热门的话题,网络上出现了大量电子商务网站。网络购物系统有着成本低、用

9、户检索方便、地域限制少的特点。其实电子商务包括的内容是很多的,而当前具体的实际运用中有两个非常成功的主流应用,一类是B2B(Business to Business),另一类是B2C(Business to Consumer)。B2B主要是面向企业的,专门为企业提供采购、销售和结算等业务的平台,这种平台对性能、安全和服务要求比较高。B2C则是大家最熟悉的,它直接面向终端的大众消费者。网上商城购物系统实际上是属于B2C的。简单来说,网上购物就是把传统的商店直接搬回家,利用internet直接购买自己需要的商品或者享受自己需要的服务。专业地讲,它是交易双方从洽谈、签约以及贷款的支付、交货通知等整个

10、交易过程通过Internet、web和购物界面技术化的B2C模式一并完成的一种新型购物方式,是电子商务的一个重要组成部分。因此,有人将此视为一个面向全国乃至全世界的大而统的虚拟商场。1.2 网上购物的现状网上购物在当今发达国家已经显示出较强的发展势头,它在推动国家经济增长方面可以说又是一支崭新的力量。举例来说,GFK最近一份针对德国网上购物者的调查指出,在2004年上半年,德国的在线购物销售额达到53亿欧元。GFK预计,2004年全年,德国在线购物销售额达到110亿欧元之多。相比之下,在我国网上购物还是比较滞后。与短信、游戏等互联网业务相比,电子商务在中国的发展是相对落后的;与电子商务发达的国

11、家相比,中国还处于起步阶段。但是,经过近几年的发展,有越来越多的人认识到“网上订货、送货上门”的方便,也有越来越多的人也开始接受网上购物。由于中国庞大的互联网用户群和经济的快速发展,谁都不会否定电子商务在中国的发展潜力。统计显示,2004年,我国电子商务交易总额累计达到4400亿元人民币。其中,上海电子商务的年交易额达到743.19亿元,同比增长47%,北京、广州的电子商务年交易额分别为666亿元和230亿元。2005年5月13日在沪举行的2005中国国际电子商务博览会传出消息,2005年我国电子商务交易总额有望突破6000亿元人民币。CNNIC在其发布的中国互联网络热点调查报告中显示:在我国

12、有17.9%的网民在半年内有过网络购物经历,在浏览过购物网站的网民中,有29.6%的人在半年内有过网络购物经历,有过网络购物经历的被访者中有超过90%的人今后会继续进行网络购物;有63.7%没有购物经历的网民表示今后会尝试网络购物。这些数据表明我国网上购物市场有巨大的潜力。1.3 论文组织在介绍了网上商城购物系统的开发背景、国内外的现状后,本文将在后面的章节里阐述建立网上商城购物系统的具体过程,具体组织结构介绍如下:全文共分为六章:第一章是概述。主要介绍系统开发的背景、意义以及国内外类似项目的研究现状,对网上商城购物系统在国内的发展作了比较详细的分析。第二章主要介绍了本文的需求分析,需求分析是

13、软件开发的非常重要的一个步骤,因此在本章我们进行了比较详细的分析。通过对系统设计思路、开发工具的选择等分析,为系统的设计及实现打下一个良好的基础。构建系统的总体结构图,并详细分析了各模块的功能第三章重点介绍了系统的结构和功能框架,构建系统的总体结构图,并详细分析了各模块的功能。通过功能设计出本系统就采用B/S三层结构为系统软件架构,并从整体到局部把系统的功能模块化,以系统结构图的形式表现出来;还有就是把这些功能结构进行实体化。第四章是本论文的重点,详细讲解了网上商城购物系统的建立方法及具体步骤,对各个子模块进行分析。对这些子模块做了详略不同的讲解,同时附上部分PHP代码方便对照示例理解。第五章

14、为本文的测试部分,介绍了软件环境的配置及测试结果分析,在测试前提出应测试出的问题,最后得出测试的结论。第六章是总结部分,对所完成的系统进行总结。2 功能需求分析2.1 设计思路网上商城购物系统采用B/S结构。B/S架构是工NTRANET上的一个典型的分布式信息系统。B/S结构只需对服务器端的应用平台进行开发和集成,减少了开发、安装和维护费用。建设过程中主要有以下考虑:(1)减少系统对硬件的要求系统主要运行于服务器上,即系统运行的硬件取决于服务器。(2)降低维护成本系统的维护主要集中于服务器端。(3)降低系统升级维护的难度逻辑与视图的分离是的模块相对独立,在业务变更及系统升级和维护时,难度大大降

15、低,极大地提高了工作人员的工作效率。在功能设计和系统实现方面,学校办公自动化系统将提供以下特点:(1)实用性实现网上购物的一般流程,系统方便易用。(2)操作简单保证系统适合不同等级计算机水平的用户,系统操作尽可能简单。(3)代码可读性好要求系统结构清晰,代码简单可读,便于日后维护和扩展。网上商城购物系统开发的总体任务是实现顾客购物与管理员管理的系统化、规范化和自动化。2.2 系统的功能性需求网上商城购物系统共分两个部分:前台用户部分和后台管理部份。为了安全性,管理员登录后台管理部分采用HTTP认证技术。前者包括用户在线注册/登录、浏览/搜索商品、查询商品信息、订购商品、购物车、用户信息维护等功

16、能。后台管理包括商品类别管理,商品管理、订单管理、用户管理等模块。2.3 非功能性需求(1)安全性要求。所有访问数据库的操作,必须有日志。(2)时间性要求。保证用户一次最简单查询工作在1分钟内完成或者简单的购物流程在3分钟内完成。(3)美观性要求。要求界面美观,操作简便。2.4 可行性分析随着计算机网络的发展,上网人数日益增多,人们已经习惯通过网上商城网络上进行购物和接受服务。因此,我们通过这样的方式,在计算机网络种商品的销售,能够被广大用户所接受,可以拓宽企业的客户群。开发网上商城购物系统的技术已经非常成熟,首先,从硬件上讲,计算机硬件速度现在已经不是问题,大容量高速度的硬盘十分普遍,同时网

17、络的速度普遍可以达到100M,这些为系统的运行打下坚实的基础。从软件的角度上讲,数据库技术已经相当成熟(目前用得比较多的有SQLserver,Oracle,MySQL等),并且处理能力也非常强,这为数据的存储和处理打下了坚实的基础,同时,开发网站的工具也非常多(比如:ASP,JSP,PHP等),并且相当成熟。有了这些技术的支持,我们成功开发一个办公自动化系统没有任何技术风险。2.5 开发本系统选择的主要工具2.5.1开发工具的选择目前开发动态网站的主要工具有:ASP,JSP和PHP。ASP:(1)使用VBScript简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。(2)无须

18、compile编译,容易编写,可在服务器端直接执行。(3)使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。(4)与浏览器无关(Browser Independence),客户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。Active ServerPages所使用的脚本语言均在WEB服务器端执行,客户端的浏览器不需要能够执行这些脚本语言。(5)Active Server Pages能与任何ActiveX scripting语言兼容。除了可使用VB Script或JavaScript语言来设计外,还通过plugin的方式,使用

19、由第三方所提供的其它脚本语言,譬如REXX、Perl、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即To

20、ols)开始对外发表第一个版本。 PHP的早期版本中,只提供了访客留言本、访客计数器等简单的功能。随后在新的成员加入开发行列之后,同在1995年中,第二版的PHP问世了,第二版定名为PHP/FI(Form Interpreter)。PHP/FI并加入了MySQL的支持,自此奠定了PHP在动态网页开发上的影响力。在1997年底,有一万五干个Web网站使用PHP/FI;在1997年中,使用PHP/FI的Web网站成长到超过五万个。PHP跟Apache服务器紧密结合的特性,加上不断的更新及加入新的功能,并且它几乎支持所有主流与非主流数据库,再以它能高速的执行效率,使得PHP在1999年中的建站用户就

21、超过了十五万。它的源代码完全公开,在Open Source意识抬头的今天,它更是这方面的中流砒柱。不断地有新的函数库加入,以及不停地更新的活力,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程序设计方面有着更好的支持。PHP与MySQL是现在绝佳的群组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松地修改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。但PHP提供的数据库接口支持彼此不统一,比如对Oracle,MySQL,Sybase的接口,彼此都不一样。这也是PHP的一

22、个弱点。JSP:(1)将内容的产生和显示进行分离,使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来产生页面上的动态内容。产生内容的逻辑被封装在标识和JavaBeans群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的产生。在服务器端,JSP引擎解释JSP标识,产生所请求的内容(例如,通过存取JavaBeans群组件,使用JDBC技术存取数据库),并且将结果以HTML(或者XML)页面的形式发送回浏览器。

23、这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。(2)强调可重用的群组件,绝大多数JSP页面依赖于可重用且跨平台的组件(如:JavaBeans或者Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识简化页面开发,Web页面开发人员不会都是熟悉脚本语言的程序设计人员。JavaServer Page技术封装了许多功能,这些功能是在易用的

24、、与JSP相关的XML标识中进行动态内容产生所需要的。标准的JSP标识能够存取和实例化JavaBeans组件,设定或者检索群组件属性,下载Applet,以及执行用其它方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其它人员可以为常用功能建立自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2EE的一个成员,JSP技术能够支持高度复杂的基于Web的应用

25、。由于JSP页面的内置脚本语言是基于Java程序设计语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java程序设计语言“一次编写,各处执行”的特点。随着越来越多的供货商将JSP支持加入到他们的产品中,您可以使用自己所选择的服务器和工具,修改工具或服务器并不影响目前的应用。性能比较:有人做过试验,对这三种语言分别做回圈性能测试及存取Oracle数据库测试。在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。而ASP、PHP测试的是2000*2

26、000循环(少一个数量级),却分别用了63秒和84秒。(参考PHPLIB)。数据库测试中,三者分别对Oracle 8进行1000次Insert,Update,Select和Delete:JSP需要13秒,PHP需要69秒,ASP则需要73秒。总之,ASP,PHP,JSP三者都有相当数量的支持者,由此也可以看出三者各有所长。选择开发工具的依据是:(1)能够满足项目的需要,(2)开发人员相当熟悉该工具。由于本人对PHP熟悉,因此选择PHP作为开发工具。2.5.2 数据库的选择目前使用比较多的数据库系统有SQL server、Oracle、MySQL等。选择一个合适的数据库是非常重要的。MySQL是

27、最受欢迎的开源SQL数据库管理信息,尽管MySQL在许多方面不如Oracl,但是其价格比较低,其性能完全能够满足中小企业的应用。上面已提到PHP与MySQL是现在绝佳的群组合。综合考虑,本系统数据库选择了MySQL。3 系统设计3.1 系统结构系统结构如图3-1所示。网上商城购物系统用三层结构:用户层WEB服务层数据层。图3-1 系统结构用户层:就是最终用户,授权使用浏览器访问站点的用户。WEB服务层:是空间提供的WEB应用服务器,所有的业务逻辑结构和功能模块都部署在这个层,响应用户要求,调用业务逻辑,访问数据。数据层:也是空间提供的数据库服务器,所以数据都保存数据库服务器上。3.2 系统主要

28、功能模块结构系统功能模块结构如图3-2所示:图3-2 系统功能结构图在前台,可以将系统分为用户模块,包括注册、登录、查看个人信息和查看个人订单4个方面;查询模块;浏览商品模块包括商品的种类显示;首页推荐模块;购物车模块;结账台模块。在后台,可以将系统分为商品类别管理模块、商品管理模块、用户管理模块、订单管理模块。下面将介绍各个模块的具体功能设计。1、用户模块用户模块包含以下几个部分,如图3-3所示:图3-3 用户模块(1)登录:注册用户必须登录后才可以购物。(2)注册:提供给用户注册为会员的功能。(3)查看个人信息:用户可以查看注册时所填信息,并且可以修改E-mail地址、真实姓名和登录密码。

29、(4)查看个人订单:用户可以查看个人订单列表已经订单的详细情况,包括所订商品的具体信息及订货人的具体信息。2、查询模块在查询模块中,输入关键字,就可以进行查询了。查询结果有全部符合和任意符合两种。3、浏览商品模块浏览商品模块包含以下几个部分,如图3-4所示:图3-4 浏览商品模块(1)浏览商品种类列表:在网上商城购物系统的左方导航菜单中显示了商品列表名称,并提供超链接显示商品列表。(2)浏览商品列表:显示商品某种类的商品和此种类商品的数量。(3)商品详细内容:显示商品名称、图片、所属分类,商品详细介绍,是否为推荐商品,显示加入购物车按钮和订购按钮(可以修改购买数量)。4、首页推荐模块在购物系统

30、首页中显示推荐商品的图片、名称、价格等信息,显示次序将最新发布的商品放在前,如此类推。商品列表类目也有受推荐的商品,那些标题前面加“星号”的,排列在列表的开头的商品就是推荐商品。5、购物车模块购物车模块包含以下几个部分,如图3-5所示:图3-5 购物车模块(1)浏览购物车:显示商品图片、商品名称、商品单价、商品数量和总价(包括每件商品的总价合计和所有商品总价合计)。(2)添加商品到购物车。(3)编辑购物车:修改购物车中已存在商品的数量,并更新购物车。(4)取消购物车中的商品:将购物车中的商品删除。(5)清空购物车:清空购物车中所有商品。6、结账台模块在购物车模块中通过点击按钮进入结账台,也可以

31、在页面公用左边的导航菜单中进入结账台。结账台的功能是用户填写收货人信息后生成订单。7、商品类别管理模块购物车模块包含以下几个部分,如图3-6所示:图3-6 商品类别管理模块(1)建立分类:建立新的商品类目名称。(2)修改分类:通过选择分类,修改它的名称。(3)删除分类:删除商品的某类别。8、商品管理模块在商品管理模块中,显示所选择商品类别的商品列表,可以增加新的商品,也可以通过链接修改商品的名称、价格、图片、所属分类等详细信息。9、用户管理模块在用户管理模块,显示所有注册用户的用户名、密码、注册时间等注册信息以及用户数量。10、订单管理模块订单管理模块包括查看订单信息和修改订单状态2个部分,如

32、图3-7所示:图3-7 订单管理模块(1)查看订单信息:管理员在订单管理模块中查看订单列表,点击可查询该订单的详细情况,包括收货人信息、商品清单、价格、数量等信息。同时,点击商品名称可进入该商品的详细介绍表单。(2)修改订单状态:在订单状态中,有订单正在处理和已处理2种状态。管理员可以点击按钮在两种状态中进行切换。已处理的订单显示处理的日期时间。3.3 部分模块的数据流图数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。本系统的模块多,在这里只给出部分模块的数据流图。其中,基

33、本图形符号:“”箭头表示数据流;“”圆或椭圆表述加工;“=”双杠表示数据存储;“”方框表示数据的源点或终点。3.3.1 商品搜索数据流图 图3-8 商品搜索数据流图3.3.2 用户购买商品的数据流图图3-9 用户购买商品的数据流图3.4 数据库逻辑结构设计数据库是数据库应用程序的重要组成部分。一个设计结构合理的数据库对于应用程序的开发效率和程序的性能都是非常重要的。根据系统需求,本系统在MySQL 5数据库中建立了如下5个数据表。(1) user表(用户信息表),此表主要用于保存注册用户的基本信息,如表3-1所示。表3-1 user表字段名数据类型长度主键说明id自动编号10是用户IDuser

34、_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否商品类别IDproduct_name字符50否商品名price浮点默认否价格detail文本默认否商品详细说明is_commend短整型1

35、否是否为推荐商品photo字符255否商品图片位置post_datetime日期/时间默认否商品上传时间(3) categories表(商品类目表),此表主要用于保存商品的分类,如表3-3所示。表3-3 categories表字段名数据类型长度主键说明category _id自动编号10是商品类别IDcategory_name字符50否商品类别名(4) carts 表(购物车表),此表主要用于保存当前用户购物车的相关信息,如表3-4所示。表3-4 carts表字段名数据类型长度主键说明cart _id自动编号10是购物车IDsession_id字符32否当前用户的session_idprodu

36、ct_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否电子邮件address字符200否收货人地址total_price浮点默认否所购商品总价postcode字符10否邮政编码tel_no字符20否收货人电话content文本默认否备注信息s

37、tate短整型1否状态sendtime整型10否处理时间4 系统功能的具体实现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 数据库的生成根据已经得到的数据库逻辑结构,在MySQL 5数据库中创建数据表。为了防止网页浏览者猜测出数据库存放路径而直接将数据库下载到客户端,窃取数据库中的数据或者恶意地修改/删除数据库中的数据,数据库文件

38、的后缀名可以更改为任何格式,在数据库设计中是一种比较好的数据库保护措施。4.2.2 数据库的连接动态网页需要与数据库进行交互,每次交互都必须进行连接,为了提高代码的复用性,在本系统中,将数据库的相关连接定义在一个叫config.inc.php的公共文件里,凡是牵涉数据库连接操作的网页只要该文件包含include进去,就可以调用该段初始化代码程序。定义数据库连接的源代码如下:?php/连接数据库的定义define(DB_USER, root); /用户名define(DB_PASSWORD, 3558883);/密码define(DB_HOST, localhost); /数据库主机地址defi

39、ne(DB_NAME, php_shop); /数据库/打开数据库连接$db = mysql_pconnect(DB_HOST, DB_USER, DB_PASSWORD);if (!$db) die(数据库连接失败!); exit;/选择数据库mysql_select_db (DB_NAME);?4.3 公共文件的实现为了使代码能重复利用,实现代码的重用性,将一些常用的功能代码单独写在一个文件内。在使用时用include关键字把这些代码包含到文件中即可。本系统把这些内容包含在系统配置文件和公用文件中。其中系统配置文件config.inc.php包括系统参数设置,公共函数设置,以及系统的初始化

40、程序。在系统前台页面用到的公共文件分别是header.inc.php和footer.inc.php,在系统后台管理页面中用到的公共文件是admin/header.php.以检查电子邮件地址格式是否正确的公共函数为例,实现如下:/功能:检查电子邮件地址格式是否正确/输入:电子邮件地址/输出:true或falsefunction CheckEmail($email) $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 各

41、子模块功能的实现4.4.1 网站的首页设置系统首页分为左右两个部分,如图4-1所示。页面左侧为商城公告、搜索栏、登录情况显示(如果用户已登录,则会显示“查看个人信息”和“查看个人订单”按钮)和网站导航内容。页面右侧可以分为“推荐”和“商品列表”两个栏目。“推荐”栏目是主要显示推荐商品的,是指那些在products表中is_commend字段值为1的商品。“商品列表”栏目是按照商品分类目录显示的,每个商品的分类目录下,最多显示5件商品。单击商品名称后面的手推车图标可以将选中的商品放入购物车内。图4-1 首页4.4.2 用户登录和注册用户注册页面的作用是生成一个进行用户注册的表单界面。注册内容主要

42、包括用户名、密码、E-mail地址和真实姓名等,其中真实姓名为可选内容。注册流程如图4-2所示。注册表单提交后,程序将对提交的数据进行合法性检验,并返回注册是否成功的信息提示。其运行界面如图4-3所示。 图4-3 用户注册页面图4-2 用户注册流程通过该页面将数据提交到add_user.php页面做进一步检查并创建新用户记录。关键代码如下: 0) ExitMessage(该用户已经存在!); ?用户登录页面则检查是否存在匹配的用户记录。用户登录界面如图4-4所示。用户匹配后,将用户名存放到SESSION中。前台用户登录流程如图4-5。如果在其他页面中读取到该SESSION值,说明用户已经登录,

43、否则说明用户尚未登录。图4-4 用户登录页面图4-5 前台用户登录流程用户登录后,则在网页左侧导航菜单中显示“查看个人信息”和“查看个人订单”按钮。用户可以对个人信息进行维护,也可以查看订单。而用户要登录后台界面,则除了在上述用户登录界面输入正确的管理员账户和密码,还要经过HTTP认证,关键代码如下:if ($_SERVERPHP_AUTH_USER=admin & $_SERVERPHP_AUTH_PW=admin) ; /成功登录 else header(WWW-Authenticate:Basic realm=欢迎登录商城管理系统); header(HTTP/1.0 401 Unauth

44、orized); die(请输入正确的账号与密码!); 界面如下:图4-6 后台用户登录验证4.4.3 查询模块在页面左侧的公用头部页面可以输入关键字查询商品,结果显示全部符合或者任意符合关键字的商品列表以及数目统计。下图为输入关键字电子商务系统的查询结果:图4-7 搜索商品结果4.4.4 浏览商品模块浏览商品模块包括浏览某类目商品列表和浏览具体商品详细情况功能,并且可以通过连接购买商品,进入购物车和结账台。除查看某类目商品列表和商品信息外,其他功能要登录才能进行。1、按分类查看商品列表在页面左侧公用头部中,显示了商品分类的超级链接,用户点击链接可以进入该分类商品列表。列出商品类别目录的核心代

45、码如下:?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,并读取满足条件的商品,计算满足的记录总数,然后根据偏移量$offset确定在数据库中

46、获取记录的起始位置,从而确定分页条件。核心代码如下:?php$each_page = EACH_PAGE; /每页最多允许显示的记录数 $offset = intval($_GEToffset);/记录偏移量 $category_id = intval($_GETcatid);/商品类别ID/取得该类商品记录总数$sql = SELECT Count(*) FROM products WHERE category_id=$category_id;$result = mysql_query($sql);$row = mysql_fetch_row($result);$total = $row0;

47、 /商品总数/规范$offsetif($offset $total)$offset = $total; ?php /为分页准备 /输出上一页的链接 $last_offset = $offset - $each_page; if($last_offset上一页a href=?offset=&catid=上一页=$total) ?下一页a href=?offset=&catid=下一页3、显示商品的详细信息点击商品的名称,可以链接到商品的详细信息表单,包括显示商品所属分类、图片、价格详细介绍、是否为推荐商品等信息,如图4-9所示。需要购买商品时,可以在此处修改购买商品的数量,点击“加入购物车”按钮

48、或者“我要订购”链接即可进入购物车确定购买。图4-9 查看商品详细情况4.4.5 购物车模块购物车模块是前台用户端程序中非常关键的一个功能模块,帮助用户完成商品的选购。对购物车的操作可分为两种情况:(1)对购物车中的一件商品的操作。例如添加新商品,移除商品,以及更新指定商品的数量等。(2)对购物车全部商品的操作。例如更新全部商品的数量,清空购物车等。购物车页面如图4-10所示。列表中包括商品名称、单价、所购数量、价格小计,以及总价格等信息。图4-10 购物车页面要显示购物车中的上述内容,也必须使用多表联合查询的方式。这里是购物车中的carts表和商品信息表通过共同的product_id字段进行

49、关联。因此,购物车的查询语句可以写为:SELECT s.*, s.number*p.price AS amount, p.product_id, p.product_name, p.price, p.photo FROM products pJOIN carts s ON s.product_id=p.product_idWHERE session_id=$session_idORDER BY p.product_name DESC通过s.number与p.price的乘机可以每种商品的价格小计amount.对amount求和就得到全部商品的总价。购物车中有两个用于更新的程序,分别是upcar

50、t.php和docart.php,有不同的操作方法,其中upcart.php用于更新购物车(包括清空购物车),docart.php则用于更新购物车中的一种商品数量。当程序执行后,将自动跳转到购物车页面(mycart.php)。4.4.6 结账台模块当用户进入结账台后,按正确填写收货人信息后可生成订单。当然,此操作需要登录后才能进行。如图4-11所示,结账台包括需要收货人填写的表单和购物车商品列表两部分。图4-11 结账台页面如图4-12,生成订单后返回订单信息页面,点击其中的商品名称可进入查看商品的详细信息。图4-12 返回订单信息页面由上面几个模块的实现可以看出,购物流程是面向顾客的:图4-

51、13 购物流程4.4.7 商品类别管理模块以下这四个模块是系统后台管理的组成部分,只有授权用户方可使用。作为后台管理页面,本节中所有程序头部都包含了admin/header.php文件。它主要用于进行HTTP身份认证以及输出头部页面的信息。 商品类别管理页面包括建立分类、修改分类、删除分类的表单页面,如图4-14所示。页面按功能分为3部分,每一部分都是一个FORM表单,表单中包含了必要的按钮、文本框或下拉选单等基本元素。此外每个表单都包括一个名为“action”隐藏域,它定义了所在表单的作用。action的值可以是“addcat”、“rencat” 或“delcat”,分别代表建立、改名或删除

52、分类的功能。图4-14 商品类别管理页面当单击页面中的“新建分类”、“修改分类”或“删除分类”,页面执行对应的操作,代码如下: /添加类别名称 if($action = addcat) if(empty($category_name) ExitMessage(请填写类别名称!); /检查类别名是否重名 $sql = SELECT * FROM categories WHERE category_name=$category_name; $result = mysql_query($sql); if(mysql_num_rows($result)0) /类别名已经存在,输出错误信息 ExitMe

53、ssage(类别名已经存在,请选择其他名称!); else /类别名不存在,添加新类别 $sql = INSERT INTO categories (category_name) VALUES($category_name); $result = mysql_query($sql); ExitMessage(新建类别已经成功!, category.php); /修改类别名称 elseif($action = rencat) /要修改类别没有选择 if(empty($category_id) ExitMessage(请选择要修改的类别!); /类别名称没有填写 elseif(empty($cat

54、egory_name) ExitMessage(请填写新的类别名称!); /检查类别名是否重名 $sql = SELECT * FROM categories WHERE category_name=$category_name AND category_id$category_id; $result = mysql_query($sql); if(mysql_num_rows($result) 0) /类别名已经存在,输出错误信息 ExitMessage(类别名已经存在,请选择其他名称!); else /类别名不存在,修改类别名 $sql = UPDATE categories SET ca

55、tegory_name=$category_name WHERE category_id=$category_id; $result = mysql_query($sql); ExitMessage(类别名称已经修改成功!, category.php); /删除类别 elseif($action = delcat) /要删除类别没有选择 if(empty($category_id) ExitMessage(请选择要删除的类别!); /检查该类别下是否存在商品 $sql = SELECT * FROM products WHERE category_id=$category_id; $result = mysql_query($sql); if(mysql_num_rows($result) 0) /该分类下存在商品,无法删除类别

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!