1、应用系统开发实践中 国 矿 业 大 学 应用系统开发实践论文姓 名: 辛喆 学 号: 08113512 学 院: 计算机科学与技术学院 专 业: 计算机科学与技术 班 级: 计科11-6 设计题目: 徐州校园生活网 专 题: 志愿者招募、风采展示 指导教师: 毛磊 职 称: 讲师 摘要伴随着互联网技术的普及,电子商务已经被人们所熟知,大学生更是对此乐此不疲且津津乐道。本次所设计的徐州校园生活网,主要是为徐州学子提供一个二手交易,校园新闻浏览,组团旅游报名,志愿者招募,驾校报名的平台,为身为大学生的我们牟取更多的便利。本文着重论述了徐州校园生活网风采展示和志愿者招募模块的实现与设计过程。在系统的
2、设计与开发过程中严格遵守软件工程的规范,详细得从经济技术以及操作方面进行了可行性分析,力求做到系统的稳定性、可重用性和可扩充性。本文是使用PHP技术和MySQL数据库编写的二手交易网站,用户可以进行注册,登陆和个人资料管理,发布和管理二手商品等一系列操作的一个公共的平台,还提供了管理员后台管理系统的功能。为广大师生提供一个便捷,有效,安全的交易平台。关键词:PHP技术;MySQL;WAMP5;志愿者;信息发布ABSTRACTWith the development of Internet technology, E-commerce has been well known, college s
3、tudents are very interested about it. The design of Xuzhou campus website is to provide a secondary goods trading, campus news learning, organizing travel event, recruiting volunteer, driving school enrollment platform for Xuzhou college students, in order to make more convenience for them. This pap
4、er focuses on the implementation and the design process on volunteer recruitment and campus news learning of Xuzhou campus website. The design and development of the system is strict with the standards of software engineering. The analysis is carried out from the economic and technical feasibility a
5、s well as operational aspects, making the system stable, reusable and scalable.This website is designed by MySQL database and using PHP technology. Users can register, login and change personal information, sailing their second-hand goods. Besides, administrator can manage this website at the backst
6、age. This website provide a convenient, efficient and secure trading platform for students and teachers.Key Words: PHP; MySQL; WAMP5; Volunteer; Information release目 录1 绪 论11.1开发背景11.2选题的目的和意义11.3研究内容21.4 本章小结22 项目总体介绍42.1开发语言介绍42.2开发工具介绍42.2.1 EPP集成环境42.2.2 FireFox浏览器42.2.3 WAMP5集成环境52.3 MySQL数据库介绍
7、62.4 程序结构62.5 本章小结73 需求分析及总体设计83.1系统可行性研究83.1.1 技术可行性83.1.2 经济可行性83.1.3 操作可行性83.1.4 总结93.2需求分析93.2.1 网站需求93.2.2 功能需求93.2.3 非功能性需求93.2.4 数据流图103.2.5 数据字典113.3功能模块分析133.3.1 模块管理133.3.2 新闻发布管理133.3.3 评论留言管理143.3.4 志愿项目管理143.3.5 报名信息管理143.3.6 报名申请143.3.7 搜索功能管理143.3.8 新闻、项目浏览143.3.9 个人信息管理143.4系统流程分析153
8、.4.1 风采展示模块普通用户153.4.2 风采展示模块普通管理员153.4.3 志愿者模块普通用户163.4.4 志愿者模块管理员173.5本章小结184 详细设计与实现194.1数据库设计194.1.1 设计分析194.1.2 E-R图设计194.2开发难点既实现方法224.2.1 两系统实现登录统一224.1.2 分项目报名人数显示254.1.3申请发布权限,专属个人中心274.1.4页面兼容性调整294.3本章小结305 测 试315.1 测试的目的和任务315.2 测试的方法315.3 测试实例315.3.1 测试要求315.3.2 测试用例及测试结果315.4 本章小结326 总
9、结336.1 系统展望336.2 系统核心特点336.3 系统存在的问题346.4 开发感想34参考文献36应用系统开发实践课程报告第36页1 绪 论校园电子商务是电子商务在校园这个特殊环境下的具体应用,主要为校园内广大学生服务,解决他们日常学习工作生活中的一些问题。因此,校园电子商务有着巨大的发展空间,它不但能使在校学生的生活变得越来越便利,而且能为学生创造巨大的经济效益。同时,作为校园活动的主要参与者,大学生对学校最新通知和动态的了解有着急切的需求;所以,十分有必要为学生提供一个了解信息和参与活动的平台。1.1开发背景目前,作为大学生的我们每天被各种信息所充斥。但是,对于学校学院所发布的一
10、些重要新闻和通知却无从知晓。究其原因,一是学生对浏览这些网站的兴趣甚少;二是诸如教务处网站的功能过于繁多,新闻通知只是其中的一小部分。所以,设计一个直接明了的新闻通知浏览网站变得尤为重要,不仅可以方便学生了解学校学院的最新动态,也可以减少因没有获取到通知而耽误活动的情况。其次,在大学中,除去学习这个学生阶段最主要的任务,参加社会志愿活动占据了我们大多数时间。这些活动不仅可以培养我们的社会服务能力,养成助人为乐的良好习惯。同时,还可以在帮助社会和他人的过程中感悟人生的意义。但作为项目的组织者,经常苦于报名的人员不齐整而导致项目流产。原因主要是通知不到位,贴在楼下的海报常常起不到作用。造成很多优秀
11、的公益活动付之东流。1.2选题的目的和意义徐州校园生活网作为一个集二手市场、风采展示、旅游、志愿者招募、驾校报名于一体的网络平台。为徐州大学生尽可能的提供便利。其中,我着重介绍风采展示和志愿者招募模块。风采展示模块的主要功能是为各校学生提供一个了解最新新闻动态的平台,通过简单的学校分类使不同学校的同学方便的浏览学校发布的最新信息,同时,进一步在学校的基础上进行学院的划分,是之能够快捷的定位到自己想浏览的资讯。由于此模块是建立在这样一个多元化的生活网平台的基础上,所以避免了因网站枯燥而放弃浏览的情况。志愿者招募模块针对学生会和社团进行活动报名以及徐州市志愿者协会进行志愿者招募时使用,通过对相关协
12、会的部门发放管理员账号,使其具有发布项目的功能。校园生活网上线后,作为一个覆盖整个徐州各大高校的应用平台,有着很可观的访问量,可以避免出现因无人知晓而造成项目付之东流的情况。同时,学生在报名过后,管理员可以方便的查看报名详情,了解报名者的各项信息。对后期人员的梳理提供极大的便利。1.3研究内容本系统是在分析了现有框架技术的基础上,结合所学的电子商务的理念,构建一套适合校园风气的应用网站。它是基于PHP+MySQL形成的架构来实现的。对于风采展示模块,实现与其他模块登录状态的统一,实现新闻的发布和图片的展示。主要实现如下内容:(1)客户登录情况判断,实现登录统一;(2)新闻图片信息的管理(新闻的
13、添加,删除和修改)与浏览;(3)模块的管理(模块的添加,删除和修改),公告更新;(4) 对新闻进行评论(在二手市场登录后才可评论);(5) 留言管理;对于志愿者招募模块,实现了志愿项目的发布流程,用户的报名流程,以及报名后的确认流程。主要实现如下内容:(1) 分别以管理员和普通用户身份登录,配置专属的用户中心;(2)管理员进行项目的管理(项目的添加,删除和修改);(3)普通用户参与项目报名;(4)不同浏览器下实现页面显示效果一致,调整兼容问题;1.4 本章小结本章介绍了当今电子商务网站和校园信息采集和活动参与情况的现状,接着介绍了本系统的研究背景、目的和意义,最后做出总结。在接下来的内容中,将
14、详细介绍如下内容:第二章:项目介绍本章对本系统所用到的开发工具以及开发环境进行介绍;对程序的总体结构加以描述。第三章:需求分析及总体设计本章给出了系统对于功能、性能的需求以及系统的可行性的研究,画出系统流程图,简要介绍各模块的功能。第四章:详细设计与实现本章介绍了各个功能模块的详细设计,对数据库的设计做详细介绍并对本系统中用到数据访问的一些方法进行了举例。本章还详细介绍了项目开发过程中几个开发难点,例如实现两个系统的融合,包括数据库的融合;第五章:总结本章内容主要包括:对于本网站的展望,该网站的核心特点,还包含的缺点和问题,以及对本次开发实践的感想。2 项目总体介绍本章对本系统所用到的开发工具
15、以及开发环境进行介绍;之后会对程序的总体结构加以描述。PHP作为开发网站的一种重要语言,占据10%的市场份额,有着十分广阔的发展前景。2.1开发语言介绍本系统所选择的是PHP脚本语言,PHP是Hypertext Preprocessor的缩写,中文名为“超文本预处理器”,是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。用PHP做出的动态页面是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使
16、代码运行更快。2.2开发工具介绍本系统所采用的是PHP加MySQL的搭配模式,在开发过程中用到的主要工具有,EPP集成环境,FireFox浏览器及其中的FireBug插件,WAMP5集成环境。下面,对各工具分别进行介绍:2.2.1 EPP集成环境EclipsePHP Studio 简称 “EPP ”,EPP 使用的 Eclipse 核心编译而来。针对PHP开发者提供的一个优秀的大型IDE开发软件。并且集成了JDK和简体中文系统,免除处了安装配置的麻烦,一次安装即可使用无需配置。此编译器为PHP编译器,专门针对辅助PHP代码的开发和调试,集成了代码高亮,函数跟踪,时时纠错等功能。2.2.2 Fi
17、reFox浏览器火狐浏览器是开源基金组织Mozilla研发的产品,属于完全开源的免费软件,任何人都可以得到它的源代码,并可对其加以修改。正是由于这种免费下载完全开源的特点使其得到不断完善。其安全性高是重要的指标。火狐浏览器有着阻止弹出式窗口功能,可以有效阻止未经许可的弹出窗口。不加载有害的ActiveX控件,不让恶意的间谍程序入侵您的计算机。该浏览器添加了开发调试功能,可以很方便的在线进行代码的调试,因此深受软件开发人员的喜爱。Firebug是网页浏览器 MozillaFirefox下的一款开发类插件,现属于Firefox的五星级强力推荐插件之一。它集HTML查看和编辑、Javascript控
18、制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web页面内部的细节层面,给Web开发者带来很大的便利。图2.1 FireBug插件图2.2.3 WAMP5集成环境WAMP5是Apache+PHP+MySQL 集成环境,拥有简单的图形和菜单安装和配置环境。该版本集成了PHP5.2.X、Mysql5、Apache2、phpMyAdmin2.11.2.1、 SQLiteManager 1.2.0,满了大部分PHPer的需求。WAMP5是一款优秀的WAMP集成软件,可以轻松的一下子同时安装好PHP
19、5+MySQL+Apache环境。通过安装WAMP5,可以在计算机上迅速建立WAMP的服务器环境,非常方便网络相关人员进行wiki、bbs等程序的使用学习与本地调试。同时,WAMP5软件包内还集成了PhpMyAdmin和SQLitemanager管理工具,更加方便使用。安装WAMP5完成后,打开浏览器,在地址栏中输入http:/localhost,得到如下页面:图2.2 WAMP5集成环境图2.3 MySQL数据库介绍MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQ
20、L是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.4 程序结构校园生活网总体上是以二手交易平台为主,风采展示,旅游模块,志愿者招募模块,驾校报名模块作为辅助功能。采用B/S架构和PHP、MySQL的搭配模式。下面给出系统的模块结构图,并着重对风采展示和志愿者两个模块做详细介绍:图2.3 部分系统结构图 风采展示和志愿者两个模块在系统中占主要地位,上图中对两个模块的结构进行了介绍。总体可以分为管理员和用户两个部分,根据所
21、获权限的不同会浏览到不同的界面。实现前台与后台的分离,便于管理。 2.5 本章小结 本章主要介绍了开发本系统所用到的计算机语言-PHP脚本语言,以及开发所需的工具和环境;之后,介绍了本系统所使用的数据库MySQL数据库。最后,简单的描述了系统的结构,并对其中风采展示和志愿者模块稍作详述。在下面一章中,会给出系统对于功能、性能的需求以及系统的可行性的研究,画出系统流程图,简要介绍各模块的功能。3 需求分析及总体设计本章将给出系统对于功能、性能的需求以及系统的可行性的研究,完成了系统的需求分析,我们也就知道了系统要做什么。接下来我们应该确定系统如何去做。系统设计一般分为总体设计和详细设计。总体设计
22、也叫概要设计,主要任务是从宏观上对该系统做好分析和建模工作,包括结构设计和接口设计,确定所有要实现的结构和接口。这一章我们主要来介绍本系统的总体设计。3.1系统可行性研究对于可行性的分析,我将从技术可行性、经济可行性、操作可行性三方面进行介绍:3.1.1 技术可行性本系统主要通过PHP技术和数据库的访问技术,本系统是用MySQL数据库,非常容易学习和掌握,通过SQL 指令构建页面与数据库之间的联系,通过具体编程来实现页面与数据库之间信息的交流,其中涉及到对页面结构的设计就要通过利用FireBug插件进行定位,在大体框架制作完成的基础上,对页面进行美观设计和修饰中用到CSS样式表等。3.1.2
23、经济可行性本系统运行所需要的硬件条件在今天是很容易得到满足的。作为其开发和运行的软件工具也是再普遍不过了的。因此,此系统在经济上是完全可行的。数据库采用MySQL,网页设计采用PHP技术,以Apache为Web服务器,采用B/S体系结构设计本系统,无论是在功能上、技术上还是在经济上都是不错的设计方案。3.1.3 操作可行性本系统是基于微型计算机图形界面的操作,所以一般的会上网的普通用户即可使用本系统。本系统有着友好的界面,功能明确,系统管理员并不要求有计算机的专业知识。对与本网站的管理,一般计算机相关专业的人员即可胜任。3.1.4 总结综上所述,本系统在技术上、经济上、可操作性都是可行的,而且
24、要求不高,所以本系统的开发是可行的。3.2需求分析3.2.1 网站需求对于风采展示和志愿者招募模块,其最大好处是要能给用户带来最大的便捷,这种便捷不仅体现在节省时间和金钱等,更要体现在进行网络操作时的易用性。所以,在设计志愿活动报名,新闻浏览时,最重要的就是完成“用户功能”。其次,对众多新闻、图片、评论和用户信息的网络管理,对于网站管理者的管理效率的意义,也是不言而喻的,这些则可以称为“管理功能”。3.2.2 功能需求对于风采展示模块而言,共分两个部分:一部分是面向用户的部分,包括:用户的登录身份验证,对于新闻图片的浏览搜索以及评论,为网站的设计者进行留言。另外一部分是管理员部分,这一部分又可
25、分为两种,一种是超级管理员,有着对页面中模块的添加、修改、删除权限;另一种是普通管理员,其职责主要是对所负责模块新闻图片的添加、修改、删除工作。对于志愿者招募模块,同样分为两个部分:一部分是面向用户的部分,包括:用户的登录,对于志愿项目的浏览,对感兴趣的志愿项目进行报名。另外一部分是管理员部分,其职责主要是对项目的添加、修改、删除,以及对收到的报名进行查看。3.2.3 非功能性需求1)精度 对于个人信息的输入,邮件的格式必须正确、密码不允许超过20个字符;用户选择或者输入数据,进行信息查询,应执行不完全匹配的模糊查询; 2)时间特性要求用户登录请求、个人信息填写完毕后的提交、个人信息更改、删除
26、的操作,响应时间应该在1.5s之内用户不应感到系统有延迟的时间;管理员执行收到报名的信息查询,返回记录响应时间应不超过 2s; 3)灵活性程序在通常的应用环境下使用鼠标和键盘进行输入操作,对于执行按钮,通常使用鼠标的点击完成。程序在通常的条件下,在 Win7/Win8的操作系统上,只要已经安装了 IE7.0 或者后续版本,都能够浏览所公布的页面、执行对应的操作。 但是,要求使用者的 IE 不要禁用 Cookie功能。4) 兼容性 对于不同内核的浏览器,网页的显示应保持一致,不会出现因浏览器不同而造成页面中控件移位或CSS样式出错显示问题。3.2.4 数据流图在画数据流图时,为了表达数据处理过程
27、的数据加工的情况,需要采取层次结构的数据流图,按照系统的层次结构进行逐层细分,并以分层的数据流图反映这种结构关系,使人能容易、清楚地表达和理解整个系统。得出所需数据流图(DFD)如下:图3.1 一层数据流图对系统采用层次结构进行初步细化,得到如下第二层数据流图:图3.2 二层数据流图3.2.5 数据字典数据字典它是用来对数据流程图(DFD)中的各个要素进行详细说明的。数据字典是关于数据的信息的集合,也就是数据字典的概念是以某种固定的格式定义的数据流,数据存储及构成它们的数项和数据结构的卡片集合。数据字典的作用是在软件的分析和设计过程中提供关于数据的描述信息。一般说来,数据字典应该由下列四类元素
28、构成:数据元素,数据流,数据存储和数据处理。经过数据流图的分析总结出以下几个数据字典。用户数据结构数据字典如表3.1所示:表3.1用户结构数据字典数据结构用户含义说明是网站的面向的对象组成自动编号,用户名,用户密码,邮箱,等级,注册时间 管理员数据结构数据字典如表3.2所示:表3.2 管理员结构数据字典数据结构管理员含义说明是网站的管理者,管理各种信息组成自动编号,用户名,用户密码,邮箱,注册时间志愿项目存储数据字典如表3.3所示:表3.3志愿项目存储数据字典数据存储项目信息表流入数据流添加项目信息流出数据流展示项目信息组成自动编号,名称,面向对象,起止时间,详细介绍,图片,项目概述,地点报名
29、信息存储数据字典如表3.4所示:表3.4 报名信息存储数据字典数据存储报名信息表说明报名信息是志愿者招募的核心信息,是实现用户与管理员之间的纽带流入数据流浏览项目,申请报名组成报名编号,项目编号,审请时间,申请人信息,管理员编号 3.3功能模块分析校园生活网系统的风采展示和志愿者招募主要功能包括以下几个方面:模块管理、新闻发布管理、评论留言管理、志愿项目管理、报名信息管理、报名申请、新闻项目浏览、搜索功能、个人信息9个功能模块。其模块划分图,如图3.3所示。图3.3 系统功能总揽图下面,分别对各功能进行介绍:3.3.1 模块管理对于风采展示模块,主页面中根据学校进行的划分,一个学校为一个模块,
30、学校内部的学院也划分为更小的模块,即为一个栏目添加子栏目。现指定特殊的超级管理员用户,实现对模块的添加、修改、删除管理,还可针对需求更替公告,设置专题等。3.3.2 新闻发布管理普通管理员的权力是针对所在的学校或学院发布新闻,新闻的类型分为文字型,图片型,混排型。同时,也可以对已发布的新闻进行删除和修改。3.3.3 评论留言管理对于已经登录的用户,可以在浏览完新闻后进行评论,同时,也可以已发留言的形式在网站中留言,提出宝贵的意见和建议。在后台,管理员也可以对已发布的评论和留言进行审查,对有不适当的言论的评论予以删除。3.3.4 志愿项目管理对于志愿者招募模块,管理员的主要功能是发布志愿项目,填
31、写项目的名称,地点,起止时间,项目概述,图片,目标人数以及项目的详情。并可在后期对项目进行修改,同时,可以在查看项目的同时,直观的了解目前的报名人数。3.3.5 报名信息管理志愿者招募模块,当用户进行报名后,管理员会在个人中心中收到报名的提示,点击查看详情可以浏览报名者的信息,从而可以方便的对报名人员进行管理,为后期活动的进行提供了及大便利。3.3.6 报名申请 作为普通用户,对自己感兴趣的志愿项目可以申请报名,报名分为三个流程,首先要填写个人信息及联系方式,之后是对填写信息的审查,如发现错误可进行修改,最后是报名提交,提示报名成功,并提供发布者的联系方式以便联系,完成报名过程。3.3.7 搜
32、索功能管理 普通用户可以在风采展示模块对希望查找的新闻进行搜索,该搜索功能支持模糊搜索,用户只需输入关键字便可方便进行搜索。3.3.8 新闻、项目浏览 普通用户在两个模块中的主要操作是对内容的浏览,为尽可能为用户提供便利,页面中将主要信息放在醒目的位置,并及时的对页面进行更新,保证信息的实效性。3.3.9 个人信息管理系统中为用户和管理员配置了不同的用户中心,但用户中心中的个人信息修改环节是相同的,可以实现对密码,用户名等信息的修改。3.4系统流程分析根据前面的需求分析与总体设计,可得出本系统的系统流程;下面将分角色对其中重要的功能进行流程性的描述。3.4.1 风采展示模块普通用户作为风采展示
33、模块普通用户,其主要操作是前文中介绍到的新闻、项目浏览,搜索功能,评论功能。系统流程如下:图3.4 风采展示模块普通用户系统流程图3.4.2 风采展示模块普通管理员作为风采展示模块普通管理员,其主要操作是前文中介绍的新闻发布管理,评论留言管理。系统流程如下:图3.5 风采展示模块普通管理员系统流程图3.4.3 志愿者模块普通用户作为志愿者模块普通用户,其主要操作是前文中介绍的报名申请,项目浏览,个人信息管理。系统流程如下:图3.6 志愿者模块普通用户系统流程图3.4.4 志愿者模块管理员作为志愿者模块管理员,其主要操作是前文中介绍的志愿项目管理,报名信息管理,个人信息管理。系统流程如下:图3.
34、7 志愿者模块管理员系统流程图3.5本章小结本章主要介绍了本系统对于功能、性能的需求以及系统的可行性的研究,其中可行性包括技术、经济、操作的可行性,接下来通过对功能和非功能性需求的设计以及数据流图和数据字典的绘制的创建,完成了系统需求分析,最后画出系统流程图,简要介绍各模块的功能。在接下来的一章,将着重介绍系统的详细设计与实现,表现在数据库的设计以及开发过程的难点环节。4 详细设计与实现系统设计一般分为总体设计和详细设计,完成了系统的总体设计以后,接下来我们进一步对系统的设计做出以下详细的分析,并做出具体的实现。详细设计其任务是确定各个软件模块组件的数据结构和操作,即从微观上对各个功能模块进行
35、编码实现。这一章我们主要来介绍本系统的详细设计。4.1数据库设计数据库设计是指对一个给定的应用环境,构造最优秀的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的使用需求(信息要求和处理要求)。数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率及实现的效果产生影响,合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。4.1.1 设计分析本系统选择MySQL数据库存储数据,MySQL拥有友好的用户界面和简单的数据表的操作,易学易懂,通过向导创建表、窗体、查询,具有有效管理和分析数据的功能。通过之前对系统功能的分析,总结出
36、需求信息:用户分一般用户、注册用户和管理员用户,一般用户和注册用户无需登录就可以查看信息,只有注册用户可以进行报名和评论。在志愿者招募模块,注册用户登录后在填写报名申请表时从数据库中调出用户注册信息。在用户报名成功后,每一个报名生成一条报名详细信息记录,然后多个这样的报名详细信息组成一个报名列表,管理员可以在用户中心调取报名列表中属于自己的报名信息。对于每一个项目,都储存在项目表中,其中记录了关于项目的详细信息。这些都保存在数据库里。4.1.2 E-R图设计完成了以上分析,就要设计满足用户需求的各个实体,以及它们之间的关系,。这些实体包括各种具体信息,通过它们之间的作用形成数据的流动。系统根据
37、设计规划出的实体有:管理员信息实体、注册用户信息实体、项目实体、报名详细信息实体。现将部分实体E-R图列举如下所示:图4.1 管理员信息实体E-R图图4.2 注册用户信息实体E-R图图4.3 项目信息实体E-R图图4.4 报名详细信息实体E-R图对于志愿者招募模块,根据实体之间的关系得出各实体的ER图:图4.5 实体间关系E-R图4.2开发难点既实现方法4.2.1 两系统实现登录统一由于在项目开始阶段,小组内成员对PHP技术的了解甚少,从零开始进行开发显然是有难度的,所以,我们采用在网上寻找模板进行修改添加的方法。二手交易平台和风采展示模块开始是两个完全分离的两个系统,我所做的工作是将两系统进
38、行整合,实现其登陆的统一。首先要做的是数据库的整合,WAMP5支持数据库的复制功能,我将风采展示模块自身的数据库yycms进行复制,转移到了二手市场平台的iwebmall数据库中。实现登录统一的原理,就是使两系统共用一个用户数据表,即iwebmall中的imall_users。但是,风采展示系统中对数据表的操作使用的是简称,即通过设置前缀名,直接读取表名的后半部分。并且,仔细阅读代码后发现,风采展示模块所采用的语言并不是PHP,而是ThinkPHP,这又给开发带来了麻烦。经过研究,由于风采展示模块只需要读取原先二手市场平台数据库中的imall_users表,所以,为了尽可能的减少修改量,在此写
39、出最快捷的修改方法:现已知,iwebmall数据库的前缀名为imall_,而风采展示数据库yycms的前缀名为yy_。将yycms复制到iwebmall后,将新插入的表的前缀全部改为imall_yy_。并将原先的imall_users也改为imall_yy_users。这样,只需将二手市场系统中有关uses表的调用全部改为yy_users,其余保持不变,就可完成修改。对于风采展示模块,ThinkPHP采用配置文件的方式来设置数据库,相关操作都在config.db.php中进行设置。其中,也已修改如下配置: mysql, DB_HOST = localhost, DB_USER = root,
40、DB_PWD = , DB_NAME = iwebmall, DB_PREFIX = imall_yy_,);?如上述代码所示,我将数据库的名称和前缀名作了修改,从而实现了数据库的统一。接下来,就是实现数据的读取。ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于读取、更新和删除等操作,主要涉及到where方法等连贯操作即可,这里,采用的是其中的M方法,M方法用于实例化一个基础模型类,实际的语句为:$user1 = M(users)-where(array(user_email = $email)-find(); 相当于执行了SQL语句:Select * F
41、rom users where user_email= $email;实现了数据的读取操作。接下来,介绍自动登录的实现方法。首先,再跳转到风采展示模块后,会先在读取二手市场的登录状态。若处于未登录状态,则会在右上角显示“亲,你好!”;若处于登录状态,则会显示“欢迎您+用户名”。图4.6 未登录状态显示图图4.7 登录状态显示图首先,在二手市场登录时,将登录的邮箱和密码存入SESSION,代码如下:现在文件头部加上:session_start();之后是存SESSION:function set_sess_user_email($v) $_SESSIONuser_nickemail=$v; se
42、t_session(user_email,$v);function set_sess_user_passwd($v)$_SESSIONuser_nickpassword=$v;在风采展示的登录界面,在用户名和密码文本框中获取session值,代码如下:input type=text name=email class=inp_one value=/input type=password name=password class=inp_one value=/之后为了实现页面自动跳转,添加自动跳转函数:submitForms()function submitForms()document.getEl
43、ementById(form_do).submit();在内添加调用方法:,完成页面自动跳转。4.1.2 分项目报名人数显示该功能主要是实现在管理员查看所发布的项目时,可以直观的看到该项目已报名的人数,并可对该项目的报名人数进行详情查看。效果如下图所示:图4.8 分项目报名人数显示图(1)点击查看详情后,只显示该项目的报名情况,效果如下图所示:图4.9 分项目报名人数显示图(2)显示报名人数的方法较为简单;首先,对于每一名管理员,都有一个shop_id,想要找到特定管理员所发布的项目,只需对imall_goods表进行查询,判断条件是shop_id相等。对于每个项目,都有final_num和g
44、oods_number两个字段,分别用来存放报名的目标人数和报名的剩余人数,所以,两者的差值即为报名人数:对于“点击查询”按钮响应,跳转到具体某一个项目的报名情况。首先,在原有显示全部报名页面的基础上,对该页面进行复制,创造出一个完全相同的页面。既然要显示单个项目,就要利用项目编号goods_id来区分。在此,所使用的方式是参数传递,在点击“点击查询”按钮时,会将goods_id一同传递给下一页面:a href=modules.php?app=shop_my_order_volun&gid=点击查询在modules.php中,得到shop_my_order_volun跳转到的页面是volunteer/my_order.php,在my_order.php中,先将传递的goods_id获取到,$goods_id_volun = get_args(gid); 根据获得的goods_id可进一步求得该商品的所有信