大学生校园交流论坛
摘 要
随着计算机科学技术的高速发展,计算机成了人们日常生活的必需品,从而也带动了一系列与此相关产业,是人们的生活发生了翻天覆地的变化,而网络化的出现也在改变着人们传统的生活方式,包括工作,学习,社交等,网络的出现使地球上居住的陌生人不再像以前一样遥不可及,它拉近了人与人之间的距离,使我们的地球变成了一个村。随着我国的高等教育的普及,大学生的队伍也正在不断壮大,为了方便大学生对学校、老师以及同学之间相互了解相互交流,建设一个互动的校园交流论坛成为了首当其冲的重要任务。与此同时,这将给学校以及在校生的工作和学习生活带来了极大的便利。
众所周知,我们所见的大多数的校园交流论坛都是用PHP 技术实现的,而基于Thinkphp的论坛较少。Redis所开发的PHP为平台,利用PHP跨平台型一次编译处处运行的巨大优势,给我们的动态网页设计提供了的更为快捷的设计理念。
本系统利用Thinkphp + mysq1 实现了“大学生校园交流论坛建设:本文对系统的需求分析、总体设计及详细设计进行了详细地阐述,主要实现了以下功能:.首页、用户注册、用户登录、校园论坛、论坛板块管理、校园动态、动态分类列表。最终实现完成了该论坛的设计。
关键词:大学生校园交流论坛;PHP语言;
College students campus exchange forum
Abstract
With the rapid development of computer science and technology, computer has become a necessity of people's daily life, which has also driven a series of related industries. People's life has undergone earth shaking changes, and the emergence of networking is also changing people's traditional way of life, including work, study, social networking, etc, The emergence of the Internet makes the strangers living on the earth no longer as far away as before. It shortens the distance between people and turns our earth into a village. With the popularization of higher education in China, the team of college students is also growing. In order to facilitate college students to understand and communicate with each other among schools, teachers and students, building an interactive campus exchange forum has become the first important task. At the same time, it will bring great convenience to the school and the students' work, study and life.
As we all know, most of the campus exchange forums we see are implemented with PHP technology, while there are few forums based on ThinkPHP. Using PHP developed by redis as the platform and taking advantage of PHP's great advantages of cross platform one-time compilation and running everywhere, it provides a faster design concept for our dynamic web page design.
The system uses ThinkPHP + mysq1 to realize the construction of "College Students' Campus exchange forum": This paper expounds the demand analysis, overall design and detailed design of the system in detail, and mainly realizes the following functions:. Home page, user registration, user login, campus forum, forum section management, campus dynamics and dynamic classification list. Finally, the design of the forum is completed.
Key words: College students campus exchange forum; PHP language;
目 录
第1章 绪论
1.1 选题背景
1.2 研究意义
1.3 研究方法
第2章 相关技术介绍
2.1开发技术
2.2 MVVM模式介绍
2.3 MYSQL数据库
2.4 B/S结构 5
2.5 Thinkphp框架介绍 5
第3章 系统分析 6
3.1 需求分析 6
3.2 可行性分析 6
3.1.1 技术可行性分析 6
3.1.2 经济可行性分析 6
3.1.3 操作可行性分析 7
3.3 性能分析 7
3.4系统操作流程
3.4.1用户登录流程
3.4.2信息添加流程 8
3.4.3信息删除流程 9
第4章 系统设计 10
4.1 系统架构设计 10
4.2开发流程设计 11
4.3数据库设计
4..3.1实体ER图
4.3.2数据表
第5章 系统实现
5.1用户功能模块
5.2管理员功能模块的实现
第6章 系统测试 28
6.1 测试目的 28
6.2 测试过程 28
6.3 测试结果 29
第7章 总结与展望 31
参考文献 32
致谢 33
在二十一世纪的今天,随着互联网技术的迅猛发展,网络给人们带来了很多便利,比如人们借助于网络进行相互交流变得更加方便。因此,交流工具作为互联网中运用最为广泛的通信工具之一。大学生校园交流论坛系统是基于WEB网页,无需专用客户端即可为用户提供简洁的聊天交流界面,用户通过发贴回帖的方式在论坛中进行学习生活等方面的交流,结合管理员在线对论坛信息进行实时调整管理,从而成为最为稳定的一个虚拟的大学生校园交流平台。可以提供学习论坛的校园论坛、论坛板块管理、校园动态、动态分类列表等功能。本毕业设计目的是对一个虚拟系统的设计,学生完成本专业基础课程、专业课程及实践课程的一次综合性的练习与实践,是检验学生综合运用所学知识解决实际问题的能力,是以本专业知识参加社会工作前的一次模拟训练。通过这次毕业设计,能更深刻地对数据库基础理论和计算机基本知识的理解,提高运用所学习知识解决际问题的能力。使开发者在老师的帮助和指导下能运用所学的专业理论知识去解决实际的应用问题。
1.2研究意义
互联网正在融入我们的生活,影响和改变着我们的生活。网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,校园论坛正是一种供人们进行交流的网络空间。它不受时间和空间的约束,论坛用户可以发表自己的观点,大家一起探讨某个问题。
目前,网上论坛已不是新事物,许许多多的别具特色的论坛在网络上随处可见。为了体现论坛的特色,我搜索各式各样的论坛版面,为了改变网上现存论坛的普遍风格,追加功能,更便于管理,于是开发出一套界面友好美观,易于使用的卡通风格的校园论坛系统。校园论坛系统是一个注册用户登录后能够浏览论坛上的帖子,并且游客能够注册成为用户。论坛注册会员能够修改自己的资料信息,申请版主,发表帖子,让大家积极参与讨论。论坛管理员能够便于管理论坛,包括浏览游客留言,审核留言,对于不健康或是不利于社会稳定的留言能进行删除操作,会员管理以及论坛版主管理等等。
其次,设计并实现本校园论坛目的主要在于在CUIT的老师、学生的学习提供简洁的交流界面,让大家有一个很好的交流。因此,在本论坛中注册了的用户,可以通过发贴回帖的方式在论坛中进行交流,以至增强老师与老师之间、同学与同学之间、老师与同学之间在学习,生活等等方面的交流。因此本论坛的预期的读者是为成都信息工程学院的老师和学生。大学生校园交流论坛系统操作简便,用户通过发贴回帖的方式在论坛中进行交流,结合管理员在线对论坛信息进行实时调整管理,从而,成为最为稳定的校园交流平台。可以提供学习等校园论坛、论坛板块管理、校园动态、动态分类列表等功能。
1.3研究方法
文献分析法:收集、阅读相关主题文献,在此基础上,加以分析研究,选定研究主体、提出概念模型。
比较分析法:选取国内外有代表性的大学生校园交流论坛,对其结构、功能加以比较,总结其优势,明确其不足。
理论和实际相结合方法:系统研究信息管理系统(MIS)相关知识理论,在此基础上,将信息集成、信息分析理论和系统构建方法等知识引入大学生校园交流论坛理论研究中。
本文预计创新之处:利用发展的观点,从需求角度出发,立足功能的完善。分析现有大学生校园交流论坛不足,研究综合性大学生校园交流论坛应具备的功能,并就如何完善我国大学生校园交流论坛提出建议和意见。
本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于php的Thinkphp框架进行开发。
前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。
后端部分:采用Thinkphp作为开发框架,同时集成Redis等相关技术。
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
网站的开发必须配套相应数据库,数据库具有一定的组织结构,能够存放和管理数据信息,在以前数据库的功能仅仅是数据保存和管理操作,但是时代的变迁和发展,现在的数据库演变成了数据处理的方式,数据库从最开始的简单存放数据表格信息到现在的能够存放成千上万数据的大型数据库,期间还是经历了许多的改革。
本次开发的管理系统使用的数据库是MYSQL数据库,该数据库运行速度快,安全性能也很高,而且对使用的平台没有任何的限制,所以被广泛应运到系统的开发中。MySQL是一个开源和多线程的关系管理数据库系统,MySQL是开放源代码的数据库,具有跨平台性,虽然功能未必强大,导致很多人都了解这个数据库的基本应用,在数据库中,总共建立了10几个表,这里面每个表都是相对应的,都各自有各自的联系,数据库意义重大,如果没有数据库的链接,就没办法运行程序,这显然可以看见数据库与程序的重要性,是紧密相连接的。
B/S(浏览器/服务器)结构是目前主流的网络化的结构模式,它能够把系统核心功能集中在服务器上面,可以帮助系统开发人员简化操作,便于维护和使用。只需要用户在客户端安装360浏览器、谷歌浏览器、QQ浏览器等当前大众浏览器,在电脑里面安装sqlserver、mysql数据库等数据库。安装好的浏览器与服务器端的数据库进行信息数据的交互。很多专门软件能够做到的事情,采用B/S结构模式也能实现,它能够结合Web浏览器技术,ActiveX技术以及多种脚本语言等技术。帮助程序开发者节约了不少开发成本。目前B/S结构成为程序开发主流结构,它最好的地方就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的客户端处理就解决部分问题,开发出来的程序跟用户交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。
图1-1 B/S模式三层结构图
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。
任何一个项目在开发研究前,都需要对研发系统本身的需求做一个认真的分析,市场的调研是不可忽视的,从实际场景中确定使用人员的功能需求,从而明确目标,对整个系统的开发有一个更加准确的定位,在这个章节,需要对系统的性能分析,业务流程分析,和数据等进行分析,大学生校园交流论坛的整体界面简单,功能完善。
需求的可行性是分析和讨论发达的系统能达到什么样的要求。开发的系统平台是否符合之前的要求。只有在预先评估系统的开发中,才能在系统开发和实施之前完成需求。如果您不具备开发一个功能不合格的系统的可行性,那就是开发失败。开发系统是否有用,可以完成之前讨论过的需求,以下分析了大学生校园交流论坛的实际需求。
系统设计需要从用户和管理员的实际需求开始,以了解他们需要实施哪些功能以及他们可以包括哪些管理工作。
考虑到大学生校园交流论坛设计的特点,应满足几个要求:
(1)它可以通过网络开展大学生校园交流论坛管理工作,促进对大学生校园交流论坛信息管理。
(2)学习方法变得更加多样化,管理更加标准化;
(3)它提供了一个免费的渠道,以确保数据的实时有效沟通。
本次设计基于B/S 模式下,运用PHP技术采用的是MySQL数据库和Myeclipse实现,总体的可行性共分为以下三个方面。
所谓的技术可行性就是在限定时间,前期拟定的功能能否被满足。在开发设计上是否会遇上解决不了的问题。做完的项目能否被很好地应用,如果存在缺点在后期的维护上是否存在很大的难度。在对这个系统评估后,认定已存在的技术能达成目标。用PHP技术来实现动态的页面,嵌入低依赖性的设计模式,灵活的数据库,配合稳定的服务器,整个系统的运行效率大大提升。由此可见,在技术层面达成目标不是非非之想。
在项目上使用的工具大部分都是是当下流行开源免费的,所以在开发前期,开发时用于项目的经费将会大大降低,不会让开发该软件在项目启动期受到经费的影响,所以经济上还是可行的。尽量用最少的花费去满足用户的需求。省下经费用于人工费,以及设备费用。将在无纸化,高效率的道路上越走越远。
本系统实现功能的操作很简单,普通手机的常见配置就可以运行本软件,并且只要粗通电脑使用的基本常识就可以流畅的使用本软件。手机具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可,所以大学生校园交流论坛具备操作可行性。
对于性能分析,与传统的管理方式相比,传统的管理方式是使用人工通过用纸和笔进行数据信息的统计和管理,并且这种方式对于存储和查找某一数据信息都比较麻烦,随着计算机网络的到来,这种传统的方法很难适应当下社会的发展,不仅降低人们的办事效率,而且还需要很多的人力和物力,对于使用的时间和所要花费的费用都是比较高的,为了降低成本费用,提高用户的工作效率,进行开发一套基于计算机和网络技术的大学生校园交流论坛。
大学生校园交流论坛的开发设计时一个独立的系统,以之前数据库进行数据的存储开发,主要是为了实现大学生校园交流论坛的用户角色及相对应的功能模块,让大学生校园交流论坛的管理不会存在管理差异、低效率,而是跟传统的管理信息恰好相反,大学生校园交流论坛的实现可以节约资源,并且对于业务的处理速度也提高,速度快、效率高,功能性强大。
对于系统的安全性的第一关,就是用户想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,用户输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果用户输入的信息不正确,则窗口出现提示框,用户登录失败,返回到第一步进行重新输入,如图3-1所示。
3.4.2信息添加流程
对于大学生校园交流论坛,需要随时添加所需要的大学生校园交流论坛工作数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的大学生校园交流论坛工作数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图3-2所示。
图3-2 信息添加流程图
不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图3-3所示。
图3-3 信息删除流程图
大学生校园交流论坛的系统项目的概述设计分析,主要内容有大学生校园交流论坛的具体分析,进行数据库的是设计,数据采用mysql数据库,并且对于系统的设计采用比较人性化的操作设计,对于系统出现的错误信息可以及时做出处理及反馈。
大学生校园交流论坛的设计基于现有的电脑,可以实现管理员,首页、用户注册、用户登录、校园论坛、论坛板块管理、校园动态、动态分类列表等详细的了解及统计分析。根据系统功能需求建立的模块关系图如下图:
图4-1管理员功能模块图
基于大学生校园交流论坛的设计基于现有的电脑,可以实现用户,首页、个人中心、校园论坛、公告栏、校园动态等详细的了解及统计分析。根据系统功能需求建立的模块关系图如下图:
大学生校园交流论坛的开发对管理模块和系统使用的数据库进行分析,编写代开发,规划和操作是构建信息管理应用程序的必要三步曲,它决定了系统是否能够真正实现预设功能以及是否可以在成功设计后实施。在开发过程中,每个阶段必须严格按照线性顺序进行开发,并且在相应阶段生成的每个工作都可以通过技术进行验证和检查。确保一个阶段完成后是正确的,不会造成下一阶段拖拽现象,使系统完成设计功能后得到保证。
从大学生校园交流论坛的成功开发经验来看,上述方法效果最为明显,最大程度地降低了系统开发的复杂性。如图4-2所示。
数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。
数据库是整个软件编程中最重要的一个步骤,对于数据库问题主要是判定数据库的数量和结构公式的创建。展示系统使用的是Mysql进行对数据库进行管理,进行保证数据的安全性、稳定性等。
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是对数据库实体的E-R图:
(1)校园动态管理E-R图,如图4-3所示:
图4-3校园动态实体属性图
(2) 用户注册信息管理E-R图如图4-4所示:
图4-4用户注册信息管理实体图
这些功能可以充分满足大学生校园交流论坛的需求。此系统功能较为全面如下图系统功能结构如图4-5所示。
我们可以根据数据结构的详细分析要求,我们根据输入和输出数据量的要求进行分析,确定什么表表,结构之间的关系,我们可以验证,调整和完善,查询和浏览过程,可以实现数据库,以使用户对数据和功能有更多要求。
基于系统使用的数据库管理系统的特点,对数据库的概念模型进行了转换和构建。但是,这个系统只需要充分考虑大学生校园交流论坛的功能,而且组织比较清晰。
registered_user表:
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
registered_user_id |
int |
11 |
是 |
是 |
注册用户ID |
user_number |
varchar |
64 |
否 |
否 |
用户编号 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
user_id |
int |
11 |
是 |
否 |
用户ID |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
type表
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
type_id |
smallint |
5 |
是 |
是 |
分类ID |
display |
smallint |
4 |
是 |
否 |
显示顺序 |
name |
varchar |
16 |
是 |
否 |
分类名称 |
father_id |
smallint |
5 |
是 |
否 |
上级分类ID |
description |
varchar |
255 |
否 |
否 |
描述 |
icon |
text |
0 |
否 |
否 |
分类图标 |
url |
varchar |
255 |
否 |
否 |
外链地址 |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
campus_forum表
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
campus_forum_id |
int |
11 |
是 |
是 |
校园论坛ID |
title |
varchar |
64 |
否 |
否 |
标题 |
cover |
varchar |
255 |
否 |
否 |
封面 |
forum_category |
varchar |
64 |
否 |
否 |
论坛类别 |
label |
varchar |
64 |
否 |
否 |
标签 |
user_name |
int |
11 |
否 |
否 |
用户名 |
content |
longtext |
0 |
否 |
否 |
内容 |
hits |
int |
11 |
是 |
否 |
点击数 |
praise_len |
int |
11 |
是 |
否 |
点赞数 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
forum_category表
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
forum_category_id |
int |
11 |
是 |
是 |
论坛类别ID |
forum_category |
varchar |
64 |
否 |
否 |
论坛类别 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
slides表:
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
slides_id |
int |
10 |
是 |
是 |
轮播图ID |
title |
varchar |
64 |
否 |
否 |
标题 |
content |
varchar |
255 |
否 |
否 |
内容 |
url |
varchar |
255 |
否 |
否 |
链接 |
img |
varchar |
255 |
否 |
否 |
轮播图 |
hits |
int |
10 |
是 |
否 |
点击量 |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
praise表:
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
praise_id |
int |
10 |
是 |
是 |
点赞ID |
user_id |
int |
11 |
是 |
否 |
点赞人 |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
source_id |
int |
10 |
是 |
否 |
来源ID |
status |
tinyint |
1 |
是 |
否 |
点赞状态 |
notice表:
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
notice_id |
mediumint |
8 |
是 |
是 |
公告id |
title |
varchar |
125 |
是 |
否 |
标题 |
content |
longtext |
0 |
否 |
否 |
正文 |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
大学生校园交流论坛登录界面,通过填写账号、密码、等信息进行登录,如图5-1所示。
图5-1登录界面图
登录关键代码如下。
public function login()
{
if (Request::isPost()) {
$request = Request::param();
$result = $this->validate($request, $this->validate);
if (true !== $result) {
// 验证失败 输出错误信息
$data['error'] = 30000;
$data['message'] = $result;
} else {
$request['password'] = md5($request['password']);
$result = $this->model->login($request, $this->table);
$data = $result;
}
} else {
$data['error'] = 30000;
$data['message'] = "field的值不能为空!";
}
return json_encode($data);
}
public function login($request=[],$table_name = ''){
$username = $request['username'];
$password = $request['password'];
$bol = $this->where(['username'=>$username])->find();
if ($bol){
$password = md5($password);
if ($request['password']==$bol['password']) {
//添加token信息
$access_token['create_time'] = date('Y-m-d H:i:s');
$access_token['update_time'] = date('Y-m-d H:i:s');
$access_token['info'] = json_encode($bol);
// $access_token['info'] = $bol;
$access_token['token'] = md5(date('Y-m-d H:i:s'));
$bol_token = Db::name('AccessToken')->insert($access_token);
if ($bol_token){
$data['obj'] = $bol;
$data['obj']['token'] = $access_token['token'];
return ['result' => $data];
}else{
return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];
}
} else {
return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];
}
}else{
return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];
}
}
大学生校园交流论坛用户注册界面,通过填写账号、密码、昵称、邮箱、手机号、身份等信息进行登录,如图5-2所示。
图5-2用户注册界面图
用户注册关键代码如下所示。
public function register()
{
if (Request::isPost()) {
$request = Request::param();
$request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');
$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
$result = $this->validate($request, $this->validate);
if (true !== $result) {
// 验证失败 输出错误信息
$data['error'] = 30000;
$data['message'] = $result;
} else {
$request['password'] = md5($request['password']);
$result = $this->model->register($request, $this->table);
$data = $result;
}
} else {
$data['error'] = 30000;
$data['message'] = "field的值不能为空!";
}
return json_encode($data);
}
public function register($request=[],$table_name = ''){
$username = $request['username'];
$bol = $this->where(['username'=>$username])->find();
if (!$bol){
$result = self::allowField(true)->save($request);
if ($result) {
return ['result' => 1];
} else {
return ['error' => ['code' => 3000, 'message' => '注册失败']];
}
}else{
return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];
}
}
我的,在我的页面通过填写个人资料、密码修改、收藏,等信息进行更新信息,如图5-3所示。
图5-3个人信息界面图
图5-3密码修改界面图
修改密码关键代码如下。
public function change_password()
{
$accessTokenModel = new AccessTokenModel();
$token = Request::header('x-auth-token');
if (!empty($token)) {
$result = $accessTokenModel->getToken($token);
if (Request::isPost()) {
$get = Request::get();
$keys = array_keys($get);
$where = [];
if ($result) {
$where[] = ["user_id", '=', $result['user_id']];
$i = 0;
foreach ($get as $key => $val) {
$where[] = [$keys[$i], '=', $val];
$i++;
}
$request = Request::post();
$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');
$result = $this->validate($request, $this->validate);
$new_password['password'] = $request['password'];
if (true !== $result) {
// 验证失败 输出错误信息
$data['error'] = 30000;
$data['message'] = $result;
} else {
$result = $this->model->change_password($new_password, $this->table, $this->table_id, $where);
$data = $result;
}
} else {
$data['error'] = 30000;
$data['message'] = "token错误或失效,未查询到用户数据";
}
} else {
$data['error'] = 30000;
$data['message'] = "field的值不能为空!";
}
} else {
$data['error'] = 30000;
$data['message'] = "token的值不能为空!";
}
return json_encode($data);
}
管理员界面要尽量简洁大方,使用户能够方便找到需要的功能用户管理、校园论坛、论坛板块、校园动态、动态分类列表,且要易于修改和维护,同时还要保证用户合法和系统安全。
首页界面如下图所示。
图5-5管理员首页界面
管理员首页关键代码如下所示。
@RequestMapping(value = {"/count_group", "/count"})
public Map
Query count = service.count(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
该功能包括对用户进行添加、删除、修改,编辑。首先管理员进入后台主页,在左边菜单栏选择相应的功能操作。
首先管理员点击进入用户shangcheng_list.jsp,可以选择删除、或者修改,如果管理员点击删除,则将通过js提示管理员是否删除onClick="return confirm('真的要删除?')",如果删除后将请求sh.jsp进行数据库数据删除,如果管理员选择修改用户,将跳转至shangjia_updt2.jsp,然后管理员修改后,页面请求shangjia_updt2_list.jsp来操作数据库完成用户的修改。
用户管理界面如下图所示。
图5-6用户管理界面图
用户管理关键代码如下所示。
$obj = $this->where($where)->field($field)->find();
$result = self::allowField(true)->save($request);
$result = $this->where($where)->update($request);
$result = $this->where($where)->delete();
在校园论坛管理,在校园论坛管理页面可以查看索引、标题、封面图、标签、分类、标签等信息,并可根据需要进行修改或删除等操作,如图5-7所示。
图5-7校园论坛界面图
校园论坛关键代码如下所示。
public function avg()
{
$request = Request::param();
if (isset($request['field'])) {
if (!empty($request['field'])) {
$result = $this->model->avg_field($request, $this->table, $this->table_id);
$data = $result;
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "field的值不能为空!";
}
return json_encode($data);
}
此页面的关键是论坛板块信息,包括频道名称、描述,详情等。单击提交按钮以完成信息的添加。如果未写入完整的论坛信息,例如,如果未写入论坛编号,系统将给出相应的错误提示,并且无法成功输入。数据以概念的形式以onsubmit =“return checkForm()”的形式写入以进行检查,checkForm()函数是一种用于写入数据的不同类型的校对方法,是不是为空也是经过form表单中的οnsubmit=”return checkForm()来检查。
管理员点击左侧菜单“论坛板块信息管理”,页面跳转到论坛信息管理外观,调用后台论坛板块查询所有论坛内容信息。并将信息密封到数据集合List,绑定到请求对象,然后页面跳转到相应的jsp,显示出论坛信息,单击删除按钮完成论坛板块信息的删除。
论坛板块管理界面如下图所示。
图5-8论坛板块管理界面图
论坛板块管理关键代码如下所示。
public function avg_group()
{
$request = Request::param();
if (isset($request['groupby']) && isset($request['field'])) {
if (!empty($request['groupby']) && !empty($request['field'])) {
$result = $this->model->avg_group($request, $this->table, $this->table_id);
$data = $result;
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
}
} else {
$data['error']['code'] = 30000;
$data['error']['message'] = "groupby或者field的值不能为空!";
}
return json_encode($data);
}
此页面的关键是编写动态分类列表,包括频道名称,详情等。单击提交按钮以完成信息的添加。如果未写入完整的分类编号,例如,如果未写入分类编号,系统将给出相应的错误提示,并且无法成功输入。数据以概念的形式以onsubmit =“return checkForm()”的形式写入以进行检查,checkForm()函数是一种用于写入数据的不同类型的校对方法,是不是为空也是经过form表单中的οnsubmit=”return checkForm()来检查。
管理员点击左侧菜单“动态分类列表管理”,页面跳转到动态分类列表管理外观,调用后台疫苗查询所有动态分类列表信息。并将信息密封到数据集合List,绑定到请求对象,然后页面跳转到相应的jsp,显示出的列表信息,单击删除按钮完成分类列表信息的删除。
动态分类列表管理界面如下图所示。
图5-9动态分类列表管理界面图
动态分类列表管理关键代码如下所示。
$obj = $this->where($where)->field($field)->find();
$result = self::allowField(true)->save($request);
$result = $this->where($where)->update($request);
$result = $this->where($where)->delete();
在对该系统进行完详细设计和编码之后,就要对大学生校园交流论坛程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。
6.2测试过程
在软件的测试过程中,通常测试人员需要针对不同的功能模块设计多种测试用例。通过测试用例能够及时发现代码业务逻辑上是否与真实的业务逻辑相对应,及时发现代码上或逻辑上的缺陷,以此来来完善系统,提高软件产品的质量,使软件具有良好的用户体验。
注册测试用例表如下所示。
表6-1注册测试用例
测试性能 |
新用户注册 |
||
用例目的 |
测试系统新用户个人信息注册功能的功能和安全性 |
||
前提条件 |
进入注册页面填写个人信息 |
||
输入条件 |
预期输出 |
实际情况 |
|
各项基本信息输入不完整 |
不允许注册,无法点击注册按钮 |
一致 |
|
填写已存在的用户名 |
系统显示出提示信息,要求重新填写 |
一致 |
|
两次密码输入不一致 |
系统显示出提示信息,要求重新填写 |
一致 |
|
填写的各项信息没有符合提示的长度和字符要求 |
系统显示出提示信息,要求重新填写 |
一致 |
|
胡乱填写电话号码 |
收不到验证码 |
一致 |
|
填写验证码与收到的不一致 |
系统显示提示信息告知用户验证码错误,不予注册 |
一致 |
登录测试用例表如下所示。
表6-2登录测试用例
测试性能 |
用户或操作员登录系统 |
||
用例目的 |
测试用户或操作员登录系统时功能是否正常 |
||
前提条件 |
进入用户登录页面或操作员登录页面 |
||
输入条件 |
预期输出 |
实际情况 |
|
各项信息不予填写,直接点击登陆按钮 |
不允许登录,提示填写账号相关信息 |
一致 |
|
填写错误的登录名或密码后点击登录系统 |
提示用户名或密码错误,要求重新填写进行登录 |
一致 |
|
填写与验证码信息不一致的信息 |
系统显示出提示信息,表明验证码错误,要求重新填写 |
一致 |
校园论坛管理测试用例表如下所示。
表6-3校园论坛管理测试用例
测试性能 |
用户进行校园论坛管理的操作 |
||
用例目的 |
测试用户进行校园论坛管理操作时,该功能是否正常 |
||
前提条件 |
用户进入订单详情页,该校园论坛能够被受理 |
||
输入条件 |
预期输出 |
实际情况 |
|
对着某论坛点击“受理”按钮 |
界面跳转至受理界面 |
一致 |
|
在受理界面,输入必填项,点击“提交”按钮 |
提示“受理成功”,并返回上一级界面 |
一致 |
|
在受理界面,填写受理表单的时候未输入完整,点击“提交”按钮 |
提示“受理失败” |
一致 |
动态分类列表测试用例表如下所示。
表6-4动态分类列表测试用例
测试性能 |
发布技术相关信息管理功能 |
||
用例目的 |
测试系统操作者对动态分类相关信息进行管理的功能是否正常 |
||
前提条件 |
登录系统进入相关管理页面 |
||
输入条件 |
预期输出 |
实际情况 |
|
进入动态分类界面,点击“录入”按钮,填写所有必填项,点击提交 |
提示“录入成功”,并返回查询界面 |
一致 |
|
进入动态分类列表界面,点击“录入”按钮,未填写一个或者多个必填项,点击提交 |
提示“录入失败”,请填写必填项 |
一致 |
|
进入动态分类列表界面,选择要修改的一条数据,点击该条数据后面的“修改”按钮 |
节目跳转至修改界面 |
一致 |
|
在修改界面,修改可修改项后,点击“提交”按钮 |
提示“修改成功”,并返回查询界面 |
一致 |
|
进入动态分类列表界面,点击某条数据后面的删除按钮 |
提示“是否要删除该数据”,如果用户点击“确定”按钮,则成功删除该条数据,并提示“删除成功”,之后返回查询界面 |
一致 |
经过对此系统的测试,得出该系统足以满足用户日常需求,在功能项目和操作等方面也能满足操作员对于其他用户的管理。但是,还有很多功能有待添加,这个系统仅能满足大部分的需求,还需要对此系统的功能更进一步的完善,这样使用起来才能更加的完美。
通过大学生校园交流论坛的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。
目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在大学生校园交流论坛的云平台服务器中。
本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。
系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。
[1]刘卿, 统战 崇台两地线上交流论坛. 朱鑫德 主编,崇明年鉴,上海三联书店,2021,74,年鉴.DOI:10.38732/y.cnki.ycmxm.2021.003145.
[2]Jingyuan Li. Construction of training platform for teachers professional ability of normal students based on ThinkPHP[J]. Frontiers in Educational Research,2021,4.0(15.0):
[3]陈春凯,马娅,刘付祥.基于THINKPHP框架的智能航标管理系统设计[J].电子技术与软件工程,2021(23):178-181.
[4]孙海波,陈哲,周琪,陈霓.基于“ThinkPHP-3.2.X远程代码执行漏洞”谈网络安全问题防范[J].中国新通信,2021,23(22):138-140.
[5]薛晓霞,李春艳,陈明,孙晓红.科研仪器共享平台在研究生创新与交流论坛中的运行模式研究[J].基础医学教育,2021,23(05):357-359.
[6]张新宇. 某高校电影交流论坛系统的设计与实现[D].北京邮电大学,2021.
[7]崔雪艳,冯灿辉.2021年中小城市公交改革与发展企业联合会华南区域联合会成立大会暨中小城市公交经验交流论坛在中山市隆重召开[J].城市公共交通,2021(05):64.
[8]2020金砖国家治国理政研讨会暨人文交流论坛举行[J].当代中国与世界,2021(01):2.
[9]金纯峰.基于ThinkPHP框架的教师业务管理系统的设计与实现[J].信息与电脑(理论版),2020,32(24):74-75.
[10]李淼冰,黄英就.基于ThinkPHP的高职科研管理系统的设计与实现[J].现代信息科技,2020,4(23):83-86.
[11]王守武. 一种全国性行业信息即时交流论坛系统[P]. 湖北省:CN107395492B,2020-11-24.
[12]李秀珍.基于MVC的ThinkPHP5框架研究[J].现代信息科技,2020,4(14):90-92.
[13]杨辉煌,胡必波,何晓薇,李宇湘.基于ThinkPHP的微课用户学习行为平台设计[J].电脑知识与技术,2020,16(19):73-74.DOI:10.14004/j.cnki.ckt.2020.2276.
[14]Qiuying Han. Inventory System Based on ThinkPHP and Bootstrap Framework[J]. American Journal of Theoretical and Applied Research,2019,1:
[15]沈洁. “锦绣邻邦——中泰手工艺交流论坛”在苏州丝绸博物馆举行[C]//中国博物馆通讯(2016年07月总第347期).,2016:11-12.
伴随着设计的完成,大学生涯也随之即将结束。大学期间是我最珍惜的时光,大学时光中学会了很多,也成长了很多,这段时光中每一段回忆都刻在脑海中。感谢一起学习,一起成长同学们,和成长过程悉心教导的老师们,非常感激有你们的陪伴。
首先感谢我的指导老师,设计的完成离不开老师的一系列指导。在毕业设计的完成过程中,老师给出了很多中肯的建议,正是由于老师一丝不苟的工作态度,我的设计才能顺利的完成。
最后,感谢在大学生涯中每一位教导我的老师,是你们教给了我丰富的知识,更教会了我遇到问题时,如何去应对并解决。谢谢你们的帮助与支持。
免费领取本源代码,请关注点赞+私信