H2003032024_付帅峰_基于PHP的产品报价系统的设计与开发.doc
【精品】VC++小型数据库——命令解析器、数据存储的设计与实现(源代码+论文)
收藏
资源目录
压缩包内文档预览:(预览前20页/共34页)
编号:1639520
类型:共享资源
大小:196.79KB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
50
积分
- 关 键 词:
-
精品
vc
小型
数据库
命令
解析
数据
存储
设计
实现
源代码
论文
- 资源描述:
-
【精品】VC++小型数据库——命令解析器、数据存储的设计与实现(源代码+论文),精品,vc,小型,数据库,命令,解析,数据,存储,设计,实现,源代码,论文
- 内容简介:
-
分类号:分类号:TP311.1TP311.1 U U D D C C:D10621-408-(2007)5911-0D10621-408-(2007)5911-0密密 级:公级:公 开开 编编 号:号:20030320242003032024成成 都都 信信 息息 工工 程程 学学 院院学学 位位 论论 文文基于基于 PHP 的产品报价系统的设计与开发的产品报价系统的设计与开发论文作者姓名:论文作者姓名:付付 帅帅 锋锋申请学位专业:申请学位专业:网络工程网络工程申请学位类别:申请学位类别:工学学士工学学士指指导导教教师师姓姓名名(职职称称):刘嘉勇(教授)刘嘉勇(教授)论文提交日期:论文提交日期:20072007 年年 6 6 月月 1010 日日基于基于 PHPPHP 的产品报价系统的设计与开发的产品报价系统的设计与开发摘摘 要要随着互联网技术应用的不断深入,产品的生产与销售链条也越来越多的融入了电子商务的元素。消费者通过网络能与来自世界各地、不同种类的产品建立直观的联系,并通过便捷、快速的操作完成购买流程。为了便于用户在千万计的产品中通过对不同制造商、不同产地的产品的价格、性能等参数进行比较,快速的找到自己需要的产品,尽可能缩短购买时间,并在制造商和消费者之间建立一个高效的平台,采用简洁高效的 PHP 语言与 MySQL 数据库等技术,并借鉴了开源社区中最经典的技术思想和开发模式,设计和开发了这一产品报价系统。该系统主要实现了产品搜索、用户评论、在线购买等前台模块与产品管理、用户管理、订单管理等后台模块。通过科学全面的测试,系统实现了产品报价和在线购物的主要功能。产品报价系统做为现有电子商务和在线购物模式的重要补充,在实际的应用中必将显现其突出的优势。关键词关键词:产品报价;在线购物;电子商务;PHP;MySQL;开源社区Design and Development of Products Quotation System Based on PHPAbstractWith the development of Internet technology, the production and marketing chain is more and more integrated into the e-commerce element. The consumer can establishment direct-viewing relation with the different type products which come from all over the world through the network , and complete the purchase flow through convenient and the fast operation. In order to be advantageous for the user in the product which surely counts through to the different manufacturers, different habitat parameter and product price, performance is carrying on the comparison , looks for the product quickly which are needed, reduces the purchase time as far as possible, and builds a high effective platform between the manufacturer and the consumer, This paper takes advantage of simple and high effective technology of PHP language and MySQL database , profites the most classical technical thought and the development pattern from open source community, design and develope this system. This system has mainly realized product search, user commentary, on-line purchase backstage module and so on and onstage module and product management, user management, order form management and so on.Through the science comprehensive test, the system has realized the main function of product quoted price and the shopping on-line so on. As the important supplement for existing E-commerce and the shopping on-line pattern, the product quoted price system will certainly display its prominent superiority in the actual application.Key words: Products Quotation;Shopping online;E-commerce; PHP; MySQL; Open source community 目目 录录论文总页数:28 页1引言11.1系统的开发背景11.1.1网上购物的发展11.1.2产品报价系统的现状11.2系统实现的目标11.3系统开发的意义22产品报价系统分析22.1网站的设计目标22.2网站的可行性分析22.2.1用户群体与市场分析22.2.2技术能力分析22.2.3可行性分析总结32.3网站设计的特点33系统的开发技术及主要构架33.1开发技术的选择33.1.1PHP 编程技术 33.1.2MySQL 开源数据库的开发 43.2系统的主要架构及开发模式43.2.1基于 B/S 的体系结构43.2.2OOP(面向对象编程)在 PHP 中的运用44系统的功能和流程分析54.1平台功能模块的设计分析54.2系统流程分析54.2.1前台购物流程54.2.2注册登录功能流程64.2.3商品搜索流程74.2.4留言评论流程74.2.5商品管理流程74.2.6订单处理流程74.2.7用户管理流程75系统功能的具体实现85.1系统数据库的设计85.2功能总体说明115.2.1 系统流程图115.2.2 目录结构说明115.3各功能模块的实现125.3.1数据库的连接125.3.2用户注册与审核模块135.3.3用户登录模块的实现145.3.4商品搜索模块的实现165.3.5购物车模块的实现165.3.6产品管理模块的实现175.3.7用户管理与权限的实现205.3.8订单与评论管理225.3.9系统数据管理236系统测试及难点分析236.1系统运行环境的搭建236.2系统程序的安装246.3系统的测试246.3.1系统关键部分测试分析246.3.2测试结果分析与说明256.3.3系统安全与性能分析256.4系统中存在的问题及解决方法25结 论25参考文献26致 谢27声 明28第 1 页 共 28 页1 1 引言引言1.11.1 系统的开发背景系统的开发背景.1 在线购物的发展在线购物的发展在线购物可以被认为是电子商务的一部分。从广义上讲,电子商务是指一种依托现代信息技术和网络技术,集金融电子化,管理信息化,商贸信息网络化为一体,旨在实现物质流,资金流,与信息流和谐统一的新型贸易方式,是贸易过程的电子化,网络化1。在线购物也已经成为一种时尚,它为人们提供了真正足不出户就可以购买任何需要的东西的可能性,因此得到越来越多消费者的接纳和认同,尤其是成长在网络时代的年轻人。当然,成功的电子商务并不是简单的编写一套程序就能完成的,它不仅需要与金融系统紧密联系在一起,还要有完善的物流系统作为支撑。另外还要有良好的美誉度、强大的前期宣传,以及完善售后服务。国内就有很多成功的在线购物网站,比如阿里巴巴,无论哪个方面,都是值得学习的榜样。虽然我国的在线购物体系还不够成熟,还存在这样那样的问题,但它的发展符合经济学原理和人们的需要,只要对症下药,一定可以逐渐发展完善,在竞争激烈的现代商务竞争中占据稳固地位. .2 产品报价系统的现状产品报价系统的现状产品报价系统的开发,主要是用来帮助消费者在最短的时间内通过产品参数的比较,找到自己需要的产品,并使用系统提供的在线购买功能,实现整个购物流程。目前,产品报价系统已经越来越多的应用到了大型的电子商务解决方案之中,起到了良好的效果。在泡泡网(/) 、中关村在线(/) 、IT 世界网(/) 、太平洋电脑网(/market/)等国内著名的 IT 和数码产品信息网都提供了强大的产品报价功能1。1.21.2 系统实现的目标系统实现的目标本系统主要实现产品报价和传统在线购物的结合。一方面用户可以使用该系统对产品进行多种属性的搜索,对不同制造商和不同型号的产品进行简单的比较,最后提交订单并完成整个在线购买流程。另一方面,建立严格的审核和快捷的订单处理机制,对管理员进行权限管理,分为系统管理员、产品管理员和订单管理员等。管理员在后台设置产品的类别、制造商信息以及对不同的产品进行属性定制,建立专有的产品属性字段。第 2 页 共 28 页1.31.3 系统开发的意义系统开发的意义本系统的开发,将在一定程度上缩短用户在产品选择和购物的中间环节,简化购物流程,提高效率。为用户节省大量的时间。通过对新注册用户的审核,来建立一个安全可靠的购物环境,解决传统电子商务存在的诚信度问题。2 2 产品报价系统分析产品报价系统分析2.12.1 网站的设计目标网站的设计目标网站使用简洁的框架结构,让审核通过并登录了的用户进行产品的搜索、使用购物车、填写定单、选择支付和送货方式等操作,用户发表产品评论,在填写定单的时候可以附带留言对自己订购的产品加以备注说明。管理员有权在后台面板进行用户管理(包括审核、查看、编辑与添加) 、订单管理和留言管理以及一些常规的设置和数据库管理(包括备份和恢复)等操作。2.22.2 网站的可行性分析网站的可行性分析.1 用户群体与市场分析用户群体与市场分析从用户群体的特点分析,他们主要为 18-35 岁之间的年轻人2,他们更容易接纳新的生活方式,本身也具有很大的消费能力,而随着互联网用户数的快速增长,各种年龄段的网络用户都在逐渐的接受这种新的购物方式,而网上支付和物流行业的崛起,更凸显了电子商务的优势。截止今年第一季度,我国网民数量已达 1.44 亿人,这是一个庞大的基数,而且正在不断增大。庞大的用户群必将为在线购物市场注入强劲的活力。从市场的前景分析,据两家美国机构发布的一份有关全球在线购物发展的报告显示,2007 年,全球在线购物的市场容量将增长 20%,达到 2110 亿美元。而我国的在线购物市场已经进入到了白热化的竞争,包括淘宝、易趣、当当等国内外巨头已经掌握了绝对的市场份额。专家预测,未来几年我国在线购物市场将达 280 亿元人民币,电子商务已成为我国互联网产业继门户、游戏、短信、搜索之后又一新的支撑点。.2 技术能力分析技术能力分析根据本系统的功能需求,采用 PHP 编程语言与开源的 MySQL 数据库引擎进行开发。由于 PHP 作为一种高效而且语言结构清晰的编程语言,尤为适合于模块化功能的开发,而且因为其本身和服务器结合比较紧密,有大量优秀的函数库可以使用,在执行效率和安全性上有很大优势。而 MySQL 作为一种快速的、多线程、多用户和健壮的 SQL 数据库服务器,根据第三方测试结果,在千万级的数据环境中依然保持较高的执行速度。因此在技术层面上,是完全可行的。第 3 页 共 28 页.3 可行性分析总结可行性分析总结综合在线购物市场用户群体的特点和不断增长的需求,以及技术、市场前景趋势等因素,在线购物市场有很大的发展前途,而产品报价系统则是建立在对产品的价格等参数对比的基础上的在线购物系统,因此本系统的开发是具有可行性的。2.32.3 网站设计的特点网站设计的特点系统的设计上需要注重安全性和用户操作的流畅性。因此要在对用户的管理和资格审核环节做出限定,只有经过审核确认的会员才有权使用产品的订购功能,而且需要对管理员进行不同的权限分配。搜索将在系统功能中占据重要的位置,可以使用产品的多个属性字段进行模糊搜索,并在搜索结果提供比较和购买通道。3 3 系统的开发技术及主要构架系统的开发技术及主要构架3.13.1 开发技术的选择开发技术的选择.1 PHP 编程技术编程技术PHP(“PHP Hypertext Preprocessor” ,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到 HTML 中,尤其适合 web 开发。它还是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言。PHP 代码在服务器端被解释转变成普通的 HTML 页面内容,送给浏览器端,这种模式可使我们用它来完成相当复杂的功能。它能运行在包括Windows、Linux 等在内的绝大多数操作系统环境中,常与免费的 Web 服务器软件 Apache 和免费数据库软件 MySQL 配合使用于 Linux 平台上,具有较高的性价比。强大的数据库支持:目前其支持范围覆盖了包括Oracle,Sybase,Microsoft SQL,MySQL,Informix,Solid dBase,ODBC,Unix dbm,PostgreSQL,Adabas D 等在内的大多数常见数据库。用它编写一个含有数据库功能的网页程序十分简单。PHP 可以编译成具有与许多数据库相连接的函数。PHP 与 MySQL 是绝佳组合。可扩展性:就像前面说的那样,PHP 已经进入了一个高速发展的时期。对于一个非程序员来说为 PHP 扩展附加功能可能会比较难,但是对于一个 PHP程序员来说并不困难。面向对象编程:PHP 提供了类和对象。基于 web 的编程工作非常需要面向对象编程能力。PHP 也支持构造器、提取类等。第 4 页 共 28 页.2 MySQL 开源数据库的开发开源数据库的开发MySQL 是最受欢迎的开源 SQL 数据库管理系统,它由 MySQL AB 开发、发布和支持。MySQL AB 是一家基于 MySQL 开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL 是 MySQL AB 的注册商标。它的主要特点和优势主要有以下几个:MySQL 是一个快速、多线程、多用户和健壮的 SQL 数据库服务器。MySQL 服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL 是一个关系数据库管理系统。它将数据存放在独立的表格中,以增加存取的速度和灵活性。 “MySQL”中的 SQL 代表“Structured Query Language” (结构化查询语言) 。SQL 是用于访问数据库的最通用的标准语言,它是由 ANSI/ISO 定义的 SQL 标准。MySQL 是开源的。开源意味着任何人都可以使用和修改该软件,任何人都可以从 Internet 上下载和使用 MySQL 而不需要支付任何费用。3.23.2 系统的主要架构及开发模式系统的主要架构及开发模式.1 基于基于 B/S 的体系结构的体系结构本产品报价系统采用 B/S 模式,服务器采用著名的 web 服务器端软件apache,该 http 服务器有着良好的跨平台性和安全性,可以运行在包括windows、linux、mac 等操作系统上。用户客户端使用各种浏览器都能够进行正常的浏览和操作。需要注意的是在程序的开发过程中,程序和路径相关的要考虑到不同的操作系统的文件目录结构。.2 OOP(面向对象编程)在(面向对象编程)在 PHP 中的运用中的运用面向对象的方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。面向对象方法的基本思想是:从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类自然的思维方式。关于 OOP 思想是否适用于 PHP 程序开发的争论一直在持续,一方面 PHP向来以快捷开发著称,在程序中可以直接的对变量进行调用,况且 PHP 自身就提供了庞大的函数库。而 OOP 则需要使用对象来调用每一个函数和属性。但是在本系统的开发中,大量使用到了 OOP 的思想,最突出的就是对数据库的操作部分,在后续的代码中出现对数据库的操作的时候使用对象调用让整个流程和结构显得更加清晰。在 PHP5 的开发过程中,OOP 的思想已经得到了一定的重第 5 页 共 28 页视7。4 4 系统的功能和流程分析系统的功能和流程分析4.14.1 平台功能模块的设计分析平台功能模块的设计分析根据需求分析和产品报价系统的整体工作流程,本系统所具有的基本功能模块主要包括查询、购买、留言、用户管理、产品管理、留言管理和订单管理等,除了以上基础模块,在开发过程中还开发了一些相关的模块来补充和完善整个系统,以期获得更好的效果。系统功能模块关系图如图 1。图 1 产品报价系统功能模块图4.24.2 系统流程分析系统流程分析以下部分主要对各个功能模块的实现流程思路进行分析。.1 前台购物流程前台购物流程只有管理员审核通过的注册用户才具有在本系统购买产品的权限,当用户搜索到所要订购的产品时,点击“购买”按钮,即可将产品放入购物车中,系统页面转向购物车页面,用户可以在看到产品现有库存,并根据自身需要设置购买的产品数量。设置完毕后,用户可以继续购物,也可以通过页面上的“结帐”开始订单填写流程。页面将显示出订购产品的基本信息、用户所在的通讯地址(用做产品发货地址) ,用户需要确认正确的收货地址,如果需要设置新的收货地址,可以在自己的通讯录内添加。在收货地址确认后用户需要选择送货方式,比如普第 6 页 共 28 页通邮寄、特快专递等,在确认送货方式之后,进入支付方式的选择,用户可以选择在线支付,也可以选择邮局汇款,在线支付的可以通过在线支付的接口实现支付。在支付方式确认之后,订单的全部信息设置完毕,用户做最后的确认,无误之后确认定单。整个订单过程完毕。等待管理员处理订单。用户可以在个人面板查看个人订购记录与订单处理状态。用户购物的整体流程如图 2。成功不成功重试否开始登录用户面板收货地址管理订单状态查询我的订单记录产品搜索是否购物购物处理继续购物?是是审核通过否退出否结帐处理否是生成订单退出图 2 前台购物流程图.2 注册登录功能流程注册登录功能流程注册流程的实现较为简单,用户在系统首页或者系统任何通过登录才有访问权限的页面都能找到会员注册的链接。点击注册链接,用户按照表单所需信息填写,需填写真实信息,因为新注册用户必须经过管理员审核才能成为正式会员在本站进行产品订购。信息填写完毕并提交之后,系统提示注册成功,但是需要管理员审核。第 7 页 共 28 页登录功能中,注册用户需要提供其正确的注册邮箱和密码,忘记密码的用户可以通过“找回密码”填写注册使用的邮箱名称,提交发送找回密码的请求,系统收到请求后,将会通过邮件将用户的新密码发送到用户注册邮箱中去。.3 商品搜索流程商品搜索流程搜索功能是系统最重要的一个模块,在搜索页,用户可以输入产品关键字,并根据产品的价格范围、产品制造商以及产品类别等属性进行查询,在查询的过程中,可以使用符号与关键字的结合进行模糊搜索。在搜索结果中,每个产品都会以规范的表格形式展示出来,并直观的显示出产品的关键属性和特点,并提供直接的购买按钮。.4 留言评论流程留言评论流程在每个产品的介绍下面都有产品评论的功能,注册用户可以对产品发表评论,对产品提出问题或者疑问,并评分。信息提交之后,管理员将能通过后台的管理功能查看的相关的评论以及问题。.5 商品管理流程商品管理流程在本产品报价系统中,主要通过管理员添加产品信息,在后台的产品管理中,管理员需要设置产品的类别,类别设置能够设立一级分类与二级分类。类别主要信息包括类别名称、排列顺序、类别形象图片等。管理员还需要设置和管理产品制造商,在添加产品信息时,管理员需要设置产品的类别、制造商、价格、库存数量等属性,库存数量会在每次的订购之后自动的减少。在产品添加之后并不能直接的显示在前台的页面上,只有在产品被管理员激活之后才能够显示。管理员有权限对已存在的类别、制造商、产品进行包括编辑、删除的管理。由于产品库存会随着产品订购而减少,管理员可以通过编辑产品来修改库存数量。同时,也可以将特有产品设置为特价产品来销售。.6 订单处理流程订单处理流程管理员在查看到新订单出现时,查看订单信息,根据用户所订购的产品以及所选取的支付和运送方式,对订单进行处理,在确认已经收到用户的订购货款的时候,开始进行正式的处理中,并根据办理的情况,修改产品订单的处理状态,用户可以通过个人面板了解订单状态,及时的了解到最新的处理情况,和网站保持一种便捷的沟通渠道,从而保证了购物过程的安全和流畅。第 8 页 共 28 页.7 用户管理流程用户管理流程用户群组是本系统一个重要模块,为了对新注册用户进行审核,在开发过程中,将新注册的用户默认为待审核组的成员,管理员登录后,可以查看新注册用户的资料,待确认审核通过后将其从待审核组转到正式用户组,实现了基本的审核功能,而只有正式会员才享有在本站订购产品的权限。其次在用户管理中,管理员可以添加用户,添加完成后将给新添加的用户发送一封邮件,进行通知。管理员还可以通过姓名、邮箱以及所在群组搜索查找用户,并对用户进行编辑、删除等操作。而管理员也作为一个特殊的群组存在,主要分为系统管理员、订单管理员和产品管理员,每个管理员都具有相应的权限。5 5 系统功能的具体实现系统功能的具体实现5.15.1 系统数据库的设计系统数据库的设计根据需求分析以及系统功能的需要,系统信息数据存放在 MySQL 数据表中。下面给出重要数据表的简单描述。1customers(用户信息表)该表存储了用户的基本信息,主要用于用户的登录以及站内的活动记录。表内数据由用户注册时写入,如表 1。表 1 用户信息表字段名字段类型字段长度是否主键描述customers_idint11是用户标识号,自动生成customers_genderchar1否用户性别customers_firstnamevarchar32否用户姓名customers_email_addressvarchar96否用户注册用 email 地址customers_default_address_idint11否用户默认地址编号customers_faxvarchar32否用户传真customers_passwordvarchar40否用户密码customers_newsletterchar1否用户订阅的新闻statusenum否用户群组creditint10否用户积分regdateint10否注册日期lastvisitint10否最后访问时间2usergroups(用户群组表)该表存储了系统群组的信息,每个群组所享有的权限是不同的,新注册用户默认为待审核成员组。该表的字段属性如表 2。表 2 系统群组信息表字段名字段类型字段长度是否主键描述groupidSmallint6是群组编号,自动生成statusEnum否用户组类型第 9 页 共 28 页grouptitleVarchar30否群组名称creditshigherInt10否积分上限creditslowerInt10否积分下限groupdiscountFloat否账户折扣allowsetconfigTinyint1否是否有系统配置权限allowsetproductTinyint1否是否有管理产品权限allowsetmodulesTinyint1否是否有管理模块的权限alloweditcustomerTinyint4否是否有编辑用户的权限alloweditorderTinyint1否是否有处理订单权限allowadmindataTinyint1否是否有管理数据的权限3categories(产品分类表)该表存储了产品类别信息,主要包括了产品编号、标识图片以及订购类型编号等。字段属性描述如表 3。表 3 产品分类表字段名字段类型字段长度是否主键描述categories_idInt11是产品类型编号categories_imageVarchar64否产品标识图片parent_idInt11否父类编号sort_orderInt3否订购类型编号date_addedDatatime否添加日期last_modifiedDatatime否最后修改日期4address_book(用户通讯地址表)系统将用户注册时的通讯地址保存到该表中,用户可以根据自身情况,在通讯录最多设置 5 个通讯地址,该通讯地址主要作为订购产品的发货地址和邮件接收地址。保证产品通过用户选择的送货方式送达用户手中。字段属性描述如表 4。表 4 用户通讯地址表字段名字段类型字段长度是否主键描述address_book_idInt11是通讯录编号customers_idInt11否用户编号entry_firstnameVarchar32否姓entry_lastnameVarchar32否名entry_street_addressVarchar64否详细地址entry_postcodeVarchar10否邮政编码entry_cityVarchar32否城市entry_stateVarchar32否省市entry_country_idInt11否国家编号entry_zone_idInt11否区域编号entry_tel_regularVarchar32否固定电话entry_tel_mobilevarchar32否移动电话第 10 页 共 28 页5manufacturers(制造商信息表)制造商信息表主要存储了制造商的基本信息,包括编号、名称、形象图片、添加及更新日期。本表信息由系统管理员进行管理。字段属性描述如表 5。表 5 制造商信息表字段名字段类型字段长度是否主键描述manufacturers_idInt11是制造商编号manufacturers_nameVarchar32否制造商名称manufacturers_imageVarchar64否制造商标识图date_addedDatetime否添加日期last_modifiedDatetime否最后修改日期6products(产品信息表)该表存储了产品的基本信息。由管理员在后台添加产品时候输入。字段属性描述如表 6。表 6 产品信息表字段名字段类型字段长度是否主键描述products_idInt11是产品编号自动生成products_quantityInt4否产品库存数量products_imageVarchar64否产品图片products_pricedecimal15,4否产品价格products_dateDatetime否产品发布时间products_last_modifiedDatetime否产最新编辑时间products_date_availableDatetime否激活时间products_weightdecimal5,2否产品重量products_statusTinyint1否产品状态manufacturers_idInt11否产品制造商编号products_orderedInt11否已订购产品products_typeint2否产品型号categories_idint10否产品类别编号7reviews(用户评论表)该表存储了用户提交的产品评论信息,主要包括了用户的信息和评论以及评分的信息。字段属性描述如表 7。表 7 用户评论表字段名字段类型字段长度是否主键描述reviews_idInt11是评论编号products_idInt11否产品名称customers_idInt11否用户编号customers_nameVarchar64否用户姓名reviews_ratingInt1否评论评分第 11 页 共 28 页date_addedDatetime否添加日期last_modifiedDatetime否最后修改日期titleText否题目内容reviews_readInt5否评论阅读次数5.25.2 功能总体说明功能总体说明5.2.1 系统流程图系统流程图系统整体主要流程图如图 3。开始登录重试进入会员界面进入非会员界面进入管理员界面是是产品搜索产品搜索是否购物购物处理继续购物?审核通过否退出否结帐处理否是生成订单产品评论产品评论系统后台管理用户管理订单管理系统信息配置产品与分类产品厂商管理产品评论管理否用户审核用户添加编辑删除订单管理订单处理订单删除退出图 3 系统整体主要流程图第 12 页 共 28 页5.2.2 目录结构说明目录结构说明本系统程序代码包含 11 个子目录,主要目录描述说明为:admin : 管理后台程序目录,包括后台程序、数据库备份目录、后台管理子模块程序目录。htmlarea : htmlarea 在线编辑器的全部程序,包括编辑器的 js 文件、编辑器图标以及模版程序。images : 该目录主要为系统中使用到的图片、图标,包括 jpg、gif、ico 等格式。includes : 系统的重要函数,包括全局配置文件,还有调用频繁的代码段。modules : 存放系统中一些小的功能模块的代码。比如站内新闻订阅。osdata : 数据库备份和恢复的设置目录,主要存放系统备份的数据库,可以从这里面将数据库导入到系统中去。templates : 系统前台模版文件,为 html 格式,通过 PHP 文件的包含而使用。5.35.3 各功能模块的实现各功能模块的实现.1 数据库的连接数据库的连接系统中对数据库的操作是以类的形式表现的,将对数据库操作的函数封装到类 dbstuff 中,包括数据库的连接和查询以及从查询结果从取数据。然后建立一个新的对象 db,在整个系统中直接使用对象操作数据库。在类 dbstuff 中,对数据库连接的代码片段是:function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) if ($pconnect) if (!MySQL_pconnect($dbhost, $dbuser, $dbpw) $this-halt(连接数据库服务器失败); else if (!MySQL_connect($dbhost, $dbuser, $dbpw) $this-halt(连接数据库服务器失败); MySQL_select_db($dbname); /选择数据库function select_db($dbname) /将选择数据库以函数的形式表示第 13 页 共 28 页 return MySQL_select_db($dbname);对数据库操作的类封装在 includes 目录中的 db_MySQL.PHP 文件中,然后在 application_top.PHP 文件中建立对象,然后在使用到数据库操作的每个页面将 application_top.PHP 包含进去。在 application_top.PHP 建立对象的操作代码为:$db = new dbstuff; /建立对象$db-connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE, USE_PCONNECT); /使用对象来操作数据库连接$db-select_db(DB_DATABASE);.2 用户注册与审核模块用户注册与审核模块作为一个产品报价系统,首先它是一个在线购物系统,因此为了建立一个良好的购物环境,保证系统的安全和用户的信息,新用户的审核是一个重要的环节。新用户在前台首页或者系统任何一个需要登录才能操作的功能页,都会自动的跳转到登录注册页面,注册页面如图 4 所示。图 4 用户注册页面点击用户注册链接,进入如图 4 的页面,填写真实的个人信息,在确认无误之后提交,系统将对提交信息进行初步的过滤,如果无误,将会提示注册成第 14 页 共 28 页功。此时用户可以登录系统,使用搜索功能,发布产品评论,修改个人资料,但是不能订购产品,在等待管理员审核通过之后才具有购买产品的权限,成为正式会员。审核功能如图 15。在注册页面,标注星号的为必须填写的字段,在程序中对此类字段进行是否为空的判断。如果均不为空则插入数据表中,否则返回信息提交页面。在这个过程中,重要的就是提取用户提交的信息,这是对信息进行判断和写入数据库的重要步骤,该过程使用到了位于 includes 目录中的 global.PHP 文件中自定义函数 tep_db_prepare_input()。该函数的实现为:function tep_db_prepare_input($string) if (is_string($string) return trim(tep_sanitize_string(stripslashes($string); /字符串替换函数 elseif (is_array($string) reset($string); while (list($key, $value) = each($string) $string$key = tep_db_prepare_input($value); return $string; else return $string; 审核模块,由管理员在后台对所要审核的会员所在的群组进行更改,管理员能全面的查看到会员的全部资料,确认之后将用户由待审核组更改为正式会员组即实现了审核功能。.3 用户登录模块的实现用户登录模块的实现注册用户通过前台页面的登录窗口(如图 5) ,进入系统,以进行相关操作。登录主要使用用户邮箱地址和注册密码,如果与数据库匹配成功则登录成功。用户遗忘密码时,通过找回密码功能来获得一个新的密码,这使用到了两个操作:首先就是通过用户提供的邮箱地址进行数据库的操作,如果邮箱存在就随机产生一个密码,并将加密后的新密码写入到数据库中。第 15 页 共 28 页图 5 用户登录页面产生新密码的实现过程为:$email_address = tep_db_prepare_input($HTTP_POST_VARSemail_address); /读取用户提交信息$check_customer_query = $db-query(select customers_firstname, customers_password, customers_id from $table_customers where customers_email_address = .safe_input($email_address).); /数据库查询if ($db-num_rows($check_customer_query) /邮箱地址存在,分配新密码 $check_customer = $db-fetch_array($check_customer_query); $new_password = tep_create_random_value(ENTRY_PASSWORD_MIN_LENGTH); /随机产生密码$crypted_password = md5($new_password); /对随机产生的密码加密$db-query(update $table_customers set customers_password =.safe_input($crypted_password). where customers_id = . (int)$check_customercustomers_id . );/更新用户信息其次,系统需要自动的发送邮件到用户信箱,将新密码以邮件方式发送给用户。发送给用户的密码是没有加密前的随机密码。发送邮件之前,系统需要配置好邮件服务功能。实现过程使用到了函数 tep_mail(),该函数的实现代码为:function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) if (SEND_EMAILS != true) return false; require_once(includes/classes/mime.PHP); require_once(includes/classes/email.PHP); $message = new email(array(X-Mailer: Mailer); $text = strip_tags($email_text); if (EMAIL_USE_HTML = true)第 16 页 共 28 页 $message-add_html($email_text, $text); else $message-add_text($text); $message-build_message(); $message-send($to_name, $to_email_address, $from_email_name, $from_email_address, $email_subject); /使用到了 PHP 封装的函数 send().4 商品搜索模块的实现商品搜索模块的实现产品搜索主要是通过对数据字段的查询实现的。如图 6 所示,用户通过输入产品名称的关键字,目前可以实现的是使用产品名称关键字、产品分类(包含子分类) 、产品制造商与产品的价格范围和上架的日期范围进行组合式的搜索服务。搜索结果将产品以列表的形式调用出来,并且显示各个产品的参数,以便于产品之间的比较,搜索结果显示如图 7。在实现该模块中,对数据库的查询、产品的显示形式与分页是重点技术点。图 6 产品搜索页面其中搜索过程对数据库的操作较为复杂,需要同时对不同数量的关键字进行处理。搜索处理用到的重要函数有以下 2 个:function tep_get_all_get_params() 用于获取用户搜索输入的所有参数function tep_parse_search_string() 用户对所有参数的处理。第 17 页 共 28 页图 7 前台产品展示页面.5 购物车模块的实现购物车模块的实现在产品列表点“购买”按钮,就自动的将所要购买的产品放进购物车中,如图 7,在图 8 中,点继续购物就可以回到产品页面,继续选择自己需要的产品。如果要结帐,只需要点“结帐”按钮,就会进入到订单填写的流程。如图2 所示。 订单处理主要包括确认收货地址、选择收货方式和选择支付方式三个主要步骤,其中可以发布订单的特殊要求和供货方需要注意的事项。购物车管理页面如图 8。图 8 购物车管理页面在本模块中,需要对用户是否具有购物权限进行判断,未审核通过的用户虽然能够将喜欢的产品放进购物车(即使未通过审核的用户,放进购物车的产品信息也可以保存,以便用户在具有权限时继续购买,但在未通过审核前,其行为不影响产品库存数量) 。权限判断的代码为:$query1 = $db-query( select status from $table_customers where customers_id =.(int) $customer_id.);$check_status = $db-fetch_array($query1);if ($check_statusstatus = verify) echo alert(您的资料还没有通过审核,暂时不能购买产品,我们将尽快为您开通。);history.back(); exit();第 18 页 共 28 页.6 产品管理模块的实现产品管理模块的实现产品管理模块包含的主要功能有:添加管理产品分类(如图 9) ,添加管理产品(如图 10) ,设置制造商(如图 11) ,设置产品特有属性(如图 12) 。产品分类管理模块,为二级分类。通过管理后台的“新分类”链接,可以添加新的分类,通过“新产品”的链接可以在当前类别下添加产品,同样在一级分类下面也具有这两项功能。可以对已存在类别进行包括修改、删除和移动在内的操作。而对类的操作均是对数据库的直接操作。其中添加类的核心代码为:$action = (isset($HTTP_GET_VARSaction) ? $HTTP_GET_VARSaction: (isset($HTTP_POST_VARSaction) ? $HTTP_POST_VARSaction: );if ($action) switch ($action) case new_category: if (isset($HTTP_POST_VARScategories_id) $categories_id = stripslashes($HTTP_POST_VARScategories_id); $sort_order = stripslashes($HTTP_POST_VARSsort_order); $db-query( insert into $table_categories (parent_id,sort_order,date_added) values ($current_category_id,$sort_order,now(); $categories_id = $db-insert_id(); $languages = tep_get_languages(); for ($i = 0, $n = sizeof($languages); $i query( insert into $table_categories_description (categories_name,categories_id,language_id) values ($categories_name,$categories_id,$language_id); $categories_image = new upload(categories_image, /upload/images/category);第 19 页 共 28 页 if ($categories_image-parse($timestamp) $categories_image-save(); $db-query(update $table_categories set categories_image = .addslashes($categories_image-filename). where categories_id = .(int)$categories_id.); updatecache(categories); cpmsg(分类添加成功。, tep_href_link(admincp.PHP, act=catalog&cPath =.$cPath.&cID=.$categories_id);图 9 产品分类添加与管理同样,产品的添加以及制造商的管理在实现上与分类的管理是一致的。效果如图 10。第 20 页 共 28 页图 10 产品添加管理页面图 11 制造商管理页面图 12 产品属性管理页面.7 用户管理与权限的实现用户管理与权限的实现主要包括了对用户的搜索查找、添加用户、编辑、删除以及对用户群组的权限和积分设置。搜索结果以列表形式显示。用户搜索页如图 13。搜索用户的实现程序片段为:第 21 页 共 28 页elseif ($searchsubmit | $deletesubmit | $exportsubmit) if (!$page) /分页显示程序段 $page = 1; $offset = ($ 1) * MAX_DISPLAY_SEARCH_RESULTS; $conditions = ; /用户搜索条件处理 $conditions .= $name != ? AND (customers_firstname LIKE %$name% OR customers_firstname=$name) : NULL; $conditions .= $email != ? AND (customers_email_address LIKE %$email% OR customers_email_address=$email) : NULL; $conditions .= $userstatus != ? AND status=$userstatus : NULL; if ($conditions) /如果搜索条件存在,开始搜索 $conditions = substr($conditions, 5); if ($searchsubmit) /action 判断 $query = $db-query( SELECT COUNT(*) FROM $table_customers WHERE $conditions); /符合条件的用户总数 $num = $db-result($query, 0); $multipage = multi($num, MAX_DISPLAY_SEARCH_RESULTS, $page, admincp.PHP?act=members&searchsubmit=yes&name=$name&email=$email&userstatus=$userstatus); $query = $db-query( SELECT * FROM $table_customers WHERE $conditions LIMIT $offset,.MAX_DISPLAY_SEARCH_RESULTS); while ($member = $db-fetch_array($query) /循环分页显示用户列表 第 22 页 共 28 页图 13 用户搜索页添加用户主要是由管理员来录入新用户信息,填写提交成功后,由系统向添加的用户发送一封邮件,以通知新用户。该功能主要方便建立系统内的一些特殊的用户,满足多方面的要求。比如购买特殊产品权限的用户。添加新用户功能如图 14。图 14 添加新用户图 15 中显示的即为用户搜索的结果,管理员可以直接进行会员的审核,也可以通过如图 15 中的“编辑”链接,查看用户详细信息。图 15 用户审核功能页删除用户的选择框在左边,选中并提交即可删除。用户组的设置主要是通过对用户积分范围的设置来划分不同的用户组,不同的用户组享有不同的产品优惠。用户组设置功能如图 16。第 23 页 共 28 页图 16 用户组设置通过如图 17 的页面,系统管理员有权限对系统的其他管理员进行权限的设置,分为产品管理员、订单管理员等。每个头衔可以设置相匹配的权限。图 17 管理员权限设置页面.8 订单与评论管理订单与评论管理订单管理是产品报价系统的重要部分,主要实现的功能包括订单搜索、订单查看与处理、订单删除等。订单搜索通过订单号、订单状态、顾客名与顾客邮箱关键字进行搜索。在订单处理页,管理员能查看新订单的完整资料,并根据订单的处理状态进行管理,并通过系统邮件与顾客沟通,将订单的处理信息反馈给顾客,同时管理员能对一些订单进行删除操作。评论管理主要提供了简单的评论查看与删除功能,整个实现过程较为简单。.9 系统数据管理系统数据管理MySQL 数据库的最大特点就是提供了很多便于直接使用的操作函数,可以轻松的将复杂的数据库操作由清晰的函数实现。在系统数据管理这个模块,主要实现了数据备份和数据恢复(即数据库导入) 。6 6 系统测试及难点分析系统测试及难点分析6.16.1 系统运行环境的搭建系统运行环境的搭建本系统的开发和测试均在 windows 操作系统平台下进行的,使用 AMP 集第 24 页 共 28 页成软件包搭建运行环境Apache,一种开放源码的 HTTP 服务器,可以在大多数计算机操作系统中运行,由于其跨平台和安全性而被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,Perl/Python 等解释器可被编译到服务器中 5。Apache 支持许多特性,其中大部分通过编译的模块实现。这些特性从服务器端的编程语言支持到身份认证方案。一些通用的语言接口支持Perl、Python、Tcl 和 PHP。流行的认证模块包括 mod_access,mod_auth 和mod_digest。其他的例子有 SSL 和 TLS 支持(mod_ssl) ,proxy 模块。很有用的 URL 重写(由 mod_rewrite 实现),定制日志文件(mod_log_config),以及过滤支持(mod_include 和 mod_ext_filter)。Apache 日志可以通过网页浏览器使用免费的脚本 AWStats 或 Visitors 来进行分析。相比较 linux 下的复杂安装过程,在 windows 操作系统下搭建运行环境相对简单,但是不足之处在于配置选项较少,安全性相对不高。在 windows 上主要采用继承软件包来直接安装,甚至不需要做任何配置就可以直接使用。第一:采用著名的 AMP 集成软件包 wamp5,在众多 AMP 集成软件中,wamp5 是最为出色的,它使用了最新的 PHP5 版本。安装与使用的流程如下:1从官方网站: 下载最新版本。软件包为 exe可执行文件,下载完毕直接双击,连续选择下一步就安装成功了。如果你需要对默认的设置做简要的修改,在安装的过程中很容易做到。可以自定义 WWW根目录的存放位置,强烈建议放到 D 盘等安全的分区中,以避免万一系统崩溃,造成数据丢失。2对于中文用户来说,安装结束后,首先要设置的是,把 MySQL 的数据库默认编码改为 UTF-8,这样可以排除很多中文乱码问题:在 WAMP5 菜单中选择打开 my(wamp).ini,设置其中的 default-character-set=utf8, 然后重启WAMP5。3数据库默认的密码是空的,可以在 PHPMyAdmin 中设置 root 帐号的密码为 123456。修改之后,接着需要修改 PHPMyAdmin 的配置文件config.inc.PHP,否则 PHPMyAdmin 就不能进入数据库: $cfgServers$iuser = root; $cfgServers$ipassword = 2003032024;4由于 MySQL4.1 之后版本对密码验证的方法发生了改动,如果在WAMP5 中使用 PHP4.x,那么就需要启用 MySQL 的 old password 功能,否则无法登录 PHPMyAdmin。在 WAMP5 菜单中选择 MySQL/MySQL console,然第 25 页 共 28 页后输入下列命令: MySQL SET PASSWORD FOR - rootlocalhost = OLD_PASSWORD(2003032024);第二:采用其他的 AMP 集成软件。比如:AppServ() 、XAMPP(/en)以及由网友 Caisong 制作的集成软件(/) 。其安装和配置过程大体相同。6.26.2 系统程序的安装系统程序的安装在搭建有 apache+PHP+MySQL 的服务器平台上,系统管理员只需要使用MySQL 命令端或者 web 管理软件在 MySQL 服务器端创建一个数据库 mywork.然后使用 MySQL 数据库导入命令将系统中的数据库文件导入到新创建的数据库 mywork 中即可。然后配置位于目录 includes 中的配置文件 configure.PHP,修改为当前的数据库用户名和密码即可安装成功。使用默认用户邮箱: 和密码:117227 登录后台进行系统设置和管理。6.36.3 系统的测试系统的测试测试平台为 windows 操作系统,运行环境由 MAP 集成软件包搭建。Apache 和 PHP 采用了缺省设置。.1 系统关键部分测试分析系统关键部分测试分析测试分为两个部分:第一部分主要就是测试系统所要求的最基本的功能,主要侧重于用户前台的使用流程。基本的用户注册和登录功能相当流畅,但是在产品搜索功能上,虽然能够使用关键字搜索到产品,但是还有所欠缺,而且可以使用的产品属性关键字还太少。在前台的购物流程中,前
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
2:不支持迅雷下载,请使用浏览器下载
3:不支持QQ浏览器下载,请用其他浏览器
4:下载后的文档和图纸-无水印
5:文档经过压缩,下载后原文更清晰
|