大学生校园交流论坛
总结
随着计算机科学技术的飞速发展,计算机已经成为人们日常生活的必需品,也催生了一系列相关产业。人们的生活发生了翻天覆地的变化,网络的出现也改变了人们传统的生活方式,包括工作、学习、社交等,互联网的出现让生活在地球上的陌生人不再那么遥不可及。像之前一样。它缩短了人与人之间的距离,使我们的地球变成了村庄。随着我国高等教育的大众化,大学生的数量也在不断增长。为了方便大学生对学校、老师、同学的了解和交流,建设互动的校园交流论坛成为首要的重要任务。同时,这也将为学校和学生的工作学习生活带来极大的便利。
众所周知,我们看到的校园交流论坛大部分都是采用PHP技术实现的,基于Thinkphp的论坛较少。 Redis开发的PHP平台利用了PHP跨平台编译一次、到处运行的巨大优势,为我们的动态网页设计提供了更快的设计理念。
本系统采用Thinkphp+mysq1实现“大学生校园交流论坛的建设”:本文详细阐述了系统的需求分析、总体设计和详细设计,主要实现以下功能:首页、用户注册、用户登录、校园论坛、论坛版块管理、校园新闻、动态分类列表。终于完成了论坛的设计。
关键词:大学生校园交流论坛; PHP语言;
大学生校园交流论坛
摘要
随着计算机科学技术的飞速发展,计算机已经成为人们日常生活的必需品,也带动了一系列相关产业的发展。人们的生活发生了翻天覆地的变化,网络的出现也在改变着人们传统的生活方式,包括工作、学习、社交等,网络的出现让生活在地球上的陌生人不再那么遥远。前。它缩短了人与人之间的距离,把我们的地球变成了一个村庄。随着我国高等教育的大众化,大学生队伍也在不断壮大。为了方便大学生之间、学校之间、教师之间、学生之间相互了解和交流,建设互动的校园交流论坛成为首要的重要任务。同时也给学校和学生的工作、学习、生活带来极大的便利。
众所周知,我们看到的校园交流论坛大部分都是用PHP技术实现的,而基于ThinkPHP的论坛却很少。采用redis开发的PHP作为平台,利用PHP跨平台一次性编译、到处运行的巨大优势,为我们的动态网页设计提供了更快的设计理念。
系统采用ThinkPHP+mysq1实现“大学生校园交流论坛”的建设:本文详细阐述了系统的需求分析、总体设计和详细设计,主要实现以下功能:。首页、用户注册、用户登录、校园论坛、论坛版块管理、校园动态及动态分类列表。终于论坛设计完成了。
关键词:大学生校园交流论坛; PHP语言;
目录
第1章绪论1
1.1 选题背景 1
1.2 研究意义 1
1.3 研究方法 2
第二章相关技术介绍 3
2.1 开发技术 3
2.2 MVVM模式介绍 4
2.3 MYSQL数据库 4
2.4 B/S结构 5
2.5 Thinkphp框架简介5
第三章系统分析 6
3.1 需求分析 6
3.2 可行性分析 6
3.1.1 技术可行性分析 6
3.1.2 经济可行性分析 6
3.1.3 运营可行性分析 7
3.3 性能分析 7
3.4 系统运行流程 7
3.4.1 用户登录流程 7
3.4.2 信息添加处理 8
3.4.3 信息删除流程 9
第四章系统设计 10
4.1 系统架构设计 10
4.2 开发流程设计 11
4.3 数据库设计 12
4..3.1 实体 ER 图 12
4.3.2 数据表 13
第五章系统实现 17
5.1 用户功能模块 17
5.2 管理员功能模块实现 22
第六章系统测试 28
6.1 测试目的 28
6.2 测试流程 28
6.3 测试结果 29
第七章总结与展望 31
参考文献 32
谢谢 33
?彼此之间的交流变得更加方便。因此,通讯工具是互联网上使用最广泛的通讯工具之一。大学生校园交流论坛系统基于WEB网页,为用户提供简单的聊天和交流界面,无需专门的客户端。用户可以在论坛中通过发表学习、生活等方面的回复,结合管理员在线查看论坛信息进行交流。进行实时调整和管理,成为大学生最稳定的虚拟校园交流平台。可提供校园论坛、论坛版块管理、校园新闻、学习论坛动态分类列表等功能。本次毕业设计的目的是设计一个虚拟系统。学生完成本专业基础课、专业课和实践课的全面锻炼和实践。它考验学生综合运用所学知识解决实际问题的能力。都是以这个专业为基础的。专业知识 参加社会工作前的模拟培训。通过本次毕业设计,我们可以更深入地了解数据库基础理论和计算机基础知识,提高运用所学知识解决实际问题的能力。这使得开发者能够在老师的帮助和指导下,运用所学的专业理论知识解决实际应用问题。1.2 研究意义
互联网正在融入我们的生活,影响和改变我们的生活。互联网不仅为我们提供了信息来源,也为我们提供了相互交流的空间。校园论坛只是人们交流的一种网络空间。它不受时间和空间的限制。论坛用户可以发表自己的意见,共同讨论某个问题。
目前,网络论坛已经不是什么新鲜事了,网络上随处可见许多独特的论坛。为了体现论坛的特色,我搜索了各种论坛布局。为了改变互联网现有论坛的普遍风格,增加功能,更方便管理,我开发了一个卡通风格的校园论坛系统,界面友好、美观、易用。 。在校园论坛系统中,注册用户登录后可以浏览论坛帖子,访客可以注册为用户。论坛注册会员可以修改个人资料、申请版主、发布帖子,让大家积极参与讨论。论坛管理员可以轻松管理论坛,包括浏览访客留言、审核留言、删除不健康或不利于社会稳定的留言、会员管理、论坛版主管理等。
其次,设计和实现这个校园论坛的目的主要是为了给我校师生提供一个简单的交流界面,让他们能够进行良好的沟通。因此,在本论坛注册的用户可以通过发帖回复的方式在论坛中进行交流,从而增进老师与老师之间、同学与同学之间、老师与同学之间在学习、生活等方面的交流。因此,本次论坛的目标读者是成都信息工程学院的师生。大学生校园交流论坛系统操作简单。用户通过发帖回复的方式在论坛中进行交流,管理员可以实时在线调整和管理论坛信息,从而成为最稳定的校园交流平台。可提供学习等校园论坛、论坛版块管理、校园新闻、动态分类列表等功能。
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、Route 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结构已经成为程序开发的主流结构。它最好的一点是没有位置限制,也不需要安装特殊的软件。如果笔记本电脑或计算机可以访问 Internet,则可以访问该系统。采用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) 提供自由通道,保证数据实时有效的沟通。
?所谓技术可行性就是能否在有限的时间内满足前期规划的功能。您会在开发设计中遇到无法解决的问题吗?完成的项目是否能很好的使用,如果有缺点,后期维护起来会不会很困难?对系统进行评估后,确定现有技术可以实现目标。利用PHP技术实现动态页面,嵌入低依赖的设计模式、灵活的数据库、稳定的服务器,整个系统的运行效率大大提高。由此可见,在技术层面实现目标并不是一个不合理的想法。
?该软件的开发不会受到项目启动期间资金的影响,因此在经济上仍然可行。尽量用最少的钱满足用户的需求。节省人工成本和设备成本。我们将在无纸化、高效化的道路上越走越远。 ?软件。手机具有联网能力,可以正常访问系统。操作者不需要有任何高超的能力。他只需要了解业务流程并根据专业知识进行正确的操作即可。因此,大学生校园交流论坛在操作上是可行的。对于绩效分析,与传统的管理方法相比,采用纸笔对数据信息进行人工统计和管理,而且这种方法存储、查找比较麻烦某些数据信息。随着计算机网络的出现,这种传统的方法很难适应当前社会的发展。不仅降低了人们的工作效率,而且需要投入大量的人力、物力,费时费力。所涉及的成本相对较高。为了降低成本、提高用户使用效率,开发了一套基于计算机和网络技术的大学生校园交流论坛。
大学生校园交流论坛的开发设计是一个独立的系统。以前的数据库是用于数据存储和开发的。主要是实现大学生校园交流论坛的用户角色及相应的功能模块,以方便对大学生校园交流论坛的管理。不会出现管理差异和效率低下的情况,而与传统管理信息化正好相反。大学生校园交流论坛的实施可以节省资源,提高业务的处理速度。它快速、高效且功能强大。
?第一级是想要进入系统的用户必须通过登录窗口,输入自己的登录信息才能登录。只有用户输入的信息准确后,才能进入操作系统界面并对功能模块进行相应的操作。如果用户输入的信息不正确,窗口中会出现提示框。用户登录失败,返回第一步重新登录,如图3-1所示。图3-1 用户用例图
3.4.2信息添加流程
对于大学生校园交流论坛,您需要随时添加所需的大学生校园交流论坛工作数据信息。用户添加信息时,需要根据添加界面,根据选择框的内容,填写需要添加的大学生校园交流论坛工作数据信息。 ,信息输入完成后,判断数据信息是否符合要求。如果满足要求,则添加完成。如果用户添加的信息不符合要求,则用户需要返回第一步,重新输入数据信息,然后进行判断操作,如图3-2所示。
图3-2 信息添加流程图
?用户一旦删除信息,被删除的数据信息将无法恢复。因此,用户在删除数据时,必须判断所删除的内容是否一定要删除。确认无误后,选择确认删除操作,如图3-3所示。展示。图3-3 信息删除流程图
大学生校园交流论坛系统项目总体设计分析。主要内容包括对大学生校园交流论坛的具体分析。数据库设计完毕。数据采用mysql数据库,系统采用更加人性化的操作设计。系统中出现的错误信息可以及时处理并反馈。
大学生校园交流论坛的设计基于现有计算机,可实现管理员、首页、用户注册、用户登录、校园论坛、论坛版块管理、校园新闻、动态分类列表的详细了解和统计分析根据系统功能需求建立的模块关系图如下:
图4-1 管理员功能模块图
基于大学生校园交流论坛的设计,基于现有计算机,可以实现对用户、主页、个人中心、校园论坛、公告栏、校园动态等的详细了解和统计分析模块根据系统功能需求建立的关系图如下:
图 4-2 用户功能模块图
大学生校园交流论坛开发系统所使用的管理模块和数据库分析,编写代开发,规划和运营是构建的三个必要步骤信息管理应用Qu,决定了系统是否能够真正实现预期的功能以及设计成功后是否能够实施。在开发过程中,每个阶段都必须严格按照线性顺序进行开发,并且相应阶段产生的每个作品都可以通过技术进行验证和检查。确保一个阶段的完成正确,不会造成下一阶段的拖累,保证系统完成设计功能。
从大学生校园交流论坛的成功开发经验来看,上述方法效果最为明显,并且最大限度地降低了系统开发的复杂度。如图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所示。
图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.
伴随着设计的完成,大学生涯也随之即将结束。大学期间是我最珍惜的时光,大学时光中学会了很多,也成长了很多,这段时光中每一段回忆都刻在脑海中。感谢一起学习,一起成长同学们,和成长过程悉心教导的老师们,非常感激有你们的陪伴。
首先感谢我的指导老师,设计的完成离不开老师的一系列指导。在毕业设计的完成过程中,老师给出了很多中肯的建议,正是由于老师一丝不苟的工作态度,我的设计才能顺利的完成。
最后,感谢在大学生涯中每一位教导我的老师,是你们教给了我丰富的知识,更教会了我遇到问题时,如何去应对并解决。谢谢你们的帮助与支持。
免费领取项目源码,请关注点赞+私聊