




免费预览已结束,剩余28页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于基于 PHPPHP 的产品报价系统的设计与开发的产品报价系统的设计与开发 摘摘 要要 随着互联网技术应用的不断深入,产品的生产与销售链条也越来越多的融 入了电子商务的元素。消费者通过网络能与来自世界各地、不同种类的产品建 立直观的联系,并通过便捷、快速的操作完成购买流程。为了便于用户在千万 计的产品中通过对不同制造商、不同产地的产品的价格、性能等参数进行比较, 快速的找到自己需要的产品,尽可能缩短购买时间,并在制造商和消费者之间 建立一个高效的平台,采用简洁高效的 PHP 语言与 MySQL 数据库等技术,并借 鉴了开源社区中最经典的技术思想和开发模式,设计和开发了这一产品报价系 统。该系统主要实现了产品搜索、用户评论、在线购买等前台模块与产品管理、 用户管理、订单管理等后台模块。通过科学全面的测试,系统实现了产品报价 和在线购物的主要功能。产品报价系统做为现有电子商务和在线购物模式的重 要补充,在实际的应用中必将显现其突出的优势。 关键词关键词:产品报价;在线购物;电子商务;PHP;MySQL;开源社区 Design and Development of Products Quotation System Based on PHP Abstract With 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引言1 1.1系统的开发背景1 1.1.1网上购物的发展1 1.1.2产品报价系统的现状1 1.2系统实现的目标1 1.3系统开发的意义2 2产品报价系统分析2 2.1网站的设计目标2 2.2网站的可行性分析2 2.2.1用户群体与市场分析2 2.2.2技术能力分析2 2.2.3可行性分析总结3 2.3网站设计的特点3 3系统的开发技术及主要构架3 3.1开发技术的选择3 3.1.1PHP 编程技术 3 3.1.2MySQL 开源数据库的开发 4 3.2系统的主要架构及开发模式4 3.2.1基于 B/S 的体系结构4 3.2.2OOP(面向对象编程)在 PHP 中的运用.4 4系统的功能和流程分析5 4.1平台功能模块的设计分析5 4.2系统流程分析5 4.2.1前台购物流程5 4.2.2注册登录功能流程6 4.2.3商品搜索流程7 4.2.4留言评论流程7 4.2.5商品管理流程7 4.2.6订单处理流程7 4.2.7用户管理流程7 5系统功能的具体实现8 5.1系统数据库的设计8 5.2功能总体说明.11 5.2.1 系统流程图.11 5.2.2 目录结构说明.11 5.3各功能模块的实现.12 5.3.1数据库的连接.12 5.3.2用户注册与审核模块.13 5.3.3用户登录模块的实现.14 5.3.4商品搜索模块的实现.16 5.3.5购物车模块的实现.16 5.3.6产品管理模块的实现.17 5.3.7用户管理与权限的实现.20 5.3.8订单与评论管理.22 5.3.9系统数据管理.23 6系统测试及难点分析.23 6.1系统运行环境的搭建.23 6.2系统程序的安装.24 6.3系统的测试.24 6.3.1系统关键部分测试分析.24 6.3.2测试结果分析与说明.25 6.3.3系统安全与性能分析.25 6.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_idint 11 是用户标识号,自动生成 customers_genderchar 1 否用户性别 customers_firstnamevarchar 32 否用户姓名 customers_email_addressvarchar 96 否用户注册用 email 地址 customers_default_address_idint 11 否用户默认地址编号 customers_faxvarchar 32 否用户传真 customers_passwordvarchar 40 否用户密码 customers_newsletterchar 1 否用户订阅的新闻 statusenum否用户群组 creditint 10 否用户积分 regdateint 10 否注册日期 lastvisitint 10 否最后访问时间 2usergroups(用户群组表) 该表存储了系统群组的信息,每个群组所享有的权限是不同的,新注册用 户默认为待审核成员组。该表的字段属性如表 2。 表 2 系统群组信息表 字段名字段类型字段长度是否主键描述 groupidSmallint 6 是群组编号,自动生成 statusEnum否用户组类型 第 9 页 共 28 页 grouptitleVarchar 30 否群组名称 creditshigherInt 10 否积分上限 creditslowerInt 10 否积分下限 groupdiscountFloat否账户折扣 allowsetconfigTinyint 1 否是否有系统配置权限 allowsetproductTinyint 1 否是否有管理产品权限 allowsetmodulesTinyint 1 否是否有管理模块的权限 alloweditcustomerTinyint 4 否是否有编辑用户的权限 alloweditorderTinyint 1 否是否有处理订单权限 allowadmindataTinyint 1 否是否有管理数据的权限 3categories(产品分类表) 该表存储了产品类别信息,主要包括了产品编号、标识图片以及订购类型 编号等。字段属性描述如表 3。 表 3 产品分类表 字段名字段类型字段长度是否主键描述 categories_idInt 11 是产品类型编号 categories_imageVarchar 64 否产品标识图片 parent_idInt 11 否父类编号 sort_orderInt 3 否订购类型编号 date_addedDatatime否添加日期 last_modifiedDatatime否最后修改日期 4address_book(用户通讯地址表) 系统将用户注册时的通讯地址保存到该表中,用户可以根据自身情况,在 通讯录最多设置 5 个通讯地址,该通讯地址主要作为订购产品的发货地址和邮 件接收地址。保证产品通过用户选择的送货方式送达用户手中。字段属性描述 如表 4。 表 4 用户通讯地址表 字段名字段类型字段长度是否主键描述 address_book_idInt 11 是通讯录编号 customers_idInt 11 否用户编号 entry_firstnameVarchar 32 否姓 entry_lastnameVarchar 32 否名 entry_street_addressVarchar 64 否详细地址 entry_postcodeVarchar 10 否邮政编码 entry_cityVarchar 32 否城市 entry_stateVarchar 32 否省市 entry_country_idInt 11 否国家编号 entry_zone_idInt 11 否区域编号 entry_tel_regularVarchar 32 否固定电话 entry_tel_mobilevarchar 32 否移动电话 第 10 页 共 28 页 5manufacturers(制造商信息表) 制造商信息表主要存储了制造商的基本信息,包括编号、名称、形象图片、 添加及更新日期。本表信息由系统管理员进行管理。字段属性描述如表 5。 表 5 制造商信息表 字段名字段类型字段长度是否主键描述 manufacturers_idInt11是制造商编号 manufacturers_nameVarchar32否制造商名称 manufacturers_imageVarchar64否制造商标识图 date_addedDatetime否添加日期 last_modifiedDatetime否最后修改日期 6products(产品信息表) 该表存储了产品的基本信息。由管理员在后台添加产品时候输入。字段属 性描述如表 6。 表 6 产品信息表 字段名字段类型字段长度是否主键描述 products_idInt 11 是产品编号自动生成 products_quantityInt 4 否产品库存数量 products_imageVarchar 64 否产品图片 products_pricedecimal15,4否产品价格 products_dateDatetime否产品发布时间 products_last_modifiedDatetime否产最新编辑时间 products_date_availableDatetime否激活时间 products_weightdecimal5,2否产品重量 products_statusTinyint 1 否产品状态 manufacturers_idInt 11 否产品制造商编号 products_orderedInt 11 否已订购产品 products_typeint 2 否产品型号 categories_idint 10 否产品类别编号 7reviews(用户评论表) 该表存储了用户提交的产品评论信息,主要包括了用户的信息和评论以及 评分的信息。字段属性描述如表 7。 表 7 用户评论表 字段名字段类型字段长度是否主键描述 reviews_idInt 11 是评论编号 products_idInt 11 否产品名称 customers_idInt 11 否用户编号 customers_nameVarchar 64 否用户姓名 reviews_ratingInt 1 否评论评分 第 11 页 共 28 页 date_addedDatetime否添加日期 last_modifiedDatetime否最后修改日期 titleText否题目内容 reviews_readInt 5 否评论阅读次数 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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老旧供热管网及设施改造工程规划设计方案
- 智慧城市绿色能源项目合作合同
- 物理力学材料分析练习题
- 环保产业污染减排成果展示表
- 跨行业合作促进林业适度规模经营的措施
- 技术创新在产业提质增效中的核心作用
- 外贸英语实务操作词汇练习题
- 电力购售及供应服务协议
- 节日中的家乡美景写景13篇范文
- 2025年音乐教育专业综合考试试卷及答案
- 《眼球的结构与功能》课件
- 起重装卸服务创业计划书
- 中小学人工智能教育方案的培训与支持机制
- 《消防培训课件》课件
- 鲍照《拟行路难》公开课
- 【当代女性工作家庭冲突现状、原因及对策9300字(论文)】
- 团员组织关系转接介绍信(样表)
- 济北中学信息技术特长生历年试题
- 非煤矿山-矿山机电安全管理课件
- 职业学校学生岗位实习三方协议范本
- 河北省唐山市路南区2023年数学五年级第二学期期末经典试题含解析
评论
0/150
提交评论