(附源码)基于web的校园论坛的设计与实现 毕业设计92291
摘 要
随着计算机科学技术的高速发展,计算机成了人们日常生活的必需品,从而也带动了一系列与此相关产业,是人们的生活发生了翻天覆地的变化,而网络化的出现也在改变着人们传统的生活方式,包括工作,学习,社交等,网络的出现使地球上居住的陌生人不再像以前一样遥不可及,它拉近了人与人之间的距离,使我们的地球变成了一个村。随着我国的高等教育的普及,大学生的队伍也正在不断壮大,为了方便大学生对学校、老师以及同学之间相互了解相互交流,建设一个互动的校园论坛成为了首当其冲的重要任务。与此同时,这将给学校以及在校生的工作和学习生活带来了极大的便利。
校园论坛主要功能模块包括轮播图管理,网站公告管理,资源管理(校园资讯,资讯分类),系统用户(管理员,注册用户),模块管理(帖子板块,论坛帖子,意见反馈)等,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Thinkphp框架、JSP技术、Ajax技术进行业务系统的编码及其开发,实现了校园论坛的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对校园论坛的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现校园论坛的部署与运行。
关键词:校园论坛;PHP;Thinkphp
Design and Implementation of Campus Forum
Based on Web
Abstract
With the rapid development of computer science and technology, computers have become a necessity for people's daily life, which has also led to a series of related industries. People's lives have undergone tremendous changes, and the emergence of networking is also changing people's traditional lifestyles, including work, learning, social networking, etc. The emergence of the Internet makes strangers living on the earth no longer as remote as before, It has narrowed the distance between people and turned our planet into a village. With the popularization of higher education in China, the team of college students is also growing. In order to facilitate the mutual understanding and exchange between college students, teachers, and classmates, building an interactive campus forum has become the first important task. At the same time, this will bring great convenience to the work and study life of the school and its students.
The main functional modules of the campus forum include rotation chart management, website announcement management, resource management (campus information, information classification), system users (administrators, registered users), module management (post boards, forum posts, and feedback), etc. The object-oriented development model is adopted for software development and hardware installation, which can well meet the actual use needs, We have improved the corresponding software setup and program coding work, adopted MySQL as the main storage unit for background data, and adopted the Thinkphp framework, JSP technology, and Ajax technology to code and develop business systems, achieving all the functions of campus forums. This report first analyzes the background, role, and significance of the research, laying a foundation for the rationality of the research work. Based on the analysis of various requirements and technical issues of the campus forum, the necessity and technical feasibility of the system have been proved. Then, the technical software and design ideas required for the design of the system have been introduced. Finally, the deployment and operation of the campus forum have been implemented.
Key words: campus forum; PHP;Thinkphp
目录
摘 要
Abstract
第一章 绪论
1.1 课题研究背景
1.2研究现状
1.3研究方法
第二章 相关技术
2.1 开发技术
2.1.1MVVM模式
2.1.2 B/S结构
2.1.3 PHP介绍
2.1.4 Mysql数据库
第三章 校园论坛分析
3.1 可行性分析
3.1.1 技术可行性分析
3.1.2 经济可行性分析
3.2 系统需求分析
3.2.1 功能性需求分析
3.2.2 非功能性分析
3.3 系统用例分析
第四章 系统总体设计
4.1 系统模块设计
4.2 数据库设计
4.3.1 数据库概念结构设计
4.2.2 数据库逻辑结构设计
第五章 系统实现
5.1登录模块的实现
5.2管理员功能模块
5.3注册用户功能模块
第六章 系统测试
6.1测试目的
6.2测试过程
6.3测试结果
结论
参考文献
致 谢
第一章 绪论
1.1 课题研究背景
论坛是互联网的一种应用服务模式,通过这种服务,互联网用户可以在上面浏览到其他用户在网站发表的各种主题、文章、资讯信息、问题交流等具有各种表现形式的文字,并且用户可以在上面针对某个具体的内容即时地发表自己的回答、看法、议论等,或者直接发表自己的文章、问题或其它内容。由于论坛的这种特点,使得全球的用户都可以随时随地进行交流,从而真正做到全球信息的交流。论坛具有多种表现形式,各网站可以按照自己的服务特点设计出适合自身的论坛形式,例如,各类论坛、在线问答、各种供求信息、网上订购等,都可以是论坛的表现形式。论坛目前在互联网上得到非常广泛的应用,而且反应非常活跃。由于论坛可以使网上信息交流变得非常方便、广泛、及时,因而对于加深网站的服务深度、提高网站的知名度、拓展网站的交流范围、激活网站的人气都有不小的作用,因此在互联网的服务中,论坛将是一个重要的内容。
在 Internet飞速发展的二十一世纪的今天,互联网成为人们快速获取、发布和传递交流信息的重要渠道,它在人们政治、经济、生活、学习等各个方面发挥着重要的作用.随着Internet的飞速发展,目前,国内外大部分机关、学校、公司、企业都已经或正在建立自己的论坛.由此可见学生校园论在Internet应用上的地位显而易见,它已成为学校及其它单位信息化建设中倍受人们的重视重要组成部分。
本科题研究实现的校园论坛,用户可以通过发贴回帖的方式在论坛中进行交流,结合管理员在线对论坛信息进行实时调整管理,从而成为最为稳定的校园交流平台。校园论坛拥有校园资讯、资讯分类、交流论坛、论坛分类等功能。
1.2研究现状
1978 年在美国芝加哥开发出一套基于 8080 芯片的 CBBS/Chicago (Computerized Bulletin Board System/Chicago),此乃最早的一套BBS(校园论坛)系统。之后随着苹果机的问世,开发出基于苹果机的Bulletin Board System和大众信息系统(Peoples Message System)2种BBS系统。1981年IBM个人计算机诞生时,并没有自己的BBS系统。直到1982年,Buss Lane才用Basic 语言为IBM个人计算机编写了一个原型程序。其后经过几番增修,终于在 1983年通过 Capital PC User Group(CPCUG)的Communication Special Interest Group 会员的努力,改写出了个人计算机系统的BBS。经Thomas Mach 整理后,终于完成了个人计算机的第1版BBS 系统——RBBS-PC。这套BBS系统的最大特色是其源程序全部公开,有利于日后的修改和维护,因此后来在开发其他的BBS系统时都以此为框架,所以RBBS-PC赢得了BBS鼻祖的美称。
大约是从1991年开始,国内开始了第一个BBS站。经过长时间的发展,直到1995年,随着计算机及其外设的大幅降价,BBS才逐渐被人们所认识。1996年更是以惊人的速度发展起来。国内的BBS站,按其性质划分,可以分为2种:一种是商业BBS站,如新华龙讯网;另一种是业余BBS站,如天堂资讯站。由于使用商业BBS站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。多数业余BBS 站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络China FidoNet(中国惠多网)。于是,各地的用户都可以通过本地的业余BBS站与远在异地的网友互通信息。这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。由于业余 BBS站拥有这种优势,所以使用者都更乐意加入。这里“业余”2字,并不是代表这种类型的BBS站的服务和技术水平是业余的,而是指这类BBS 站的性质。一般 BBS站都是由志愿者开发的。他们付出的不仅是金钱,更多的是精力。其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平国内的BBS站,大多数还是大型综合性BBS站。随着计算机的普及,特别是宽带的普及,BBS的活动将会进一步高涨。但是,随之而来对专注于领域方面的BBS将会慢慢增加需求。尽管BBS站台的数量在不断增长,但BBS的发展过程,也出现了一些问题。国内自己开发的BBS基本上都是处于最原始的JSP MODEL1模式,这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样极大的限制了BBS站点的扩展。
1.3研究方法
首先,通过引擎搜索或者查阅相关文献资料,了解了本系统开发的背景以及设计系统的意义所在,收集用户需求信息。其次,在开发工具上,最终确定是基于Mysql数据库,在php的Thinkphp框架设计的基础上实现,设计出系统大致的功能模块。主要从方便系统用户和系统管理员的角度进行分析,明确该系统应该具有的功能。最终是测试系统,通过用例测试发现存在的问题并找到解决的方案。利用现有的开发平台,结合自己所学的知识,在老师的指导帮助下来完成该设计,确保系统的可用性、实用性。
第二章 相关技术
2.1 开发技术
本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于php的Thinkphp框架进行开发。
前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。后端部分:采用Thinkphp框架,运用phpstudy 集成开发工具。
2.1.1MVVM模式
MVVM模式是常用的开发模式,主要是在代码实现上将其分为M层、V层和C层。
视图(View)代表用户交互界面,一个 Web 应用就可能有很多的界面,在 MVVM 模式中,视图仅仅处理的只有数据采集、处理,还有用户的请求, 并不包括业务流程的处理,业务流程由模型(Model)来处理。
模型(Model)就是业务流程/状态的处理及业务规则的制定。模型处理业务流程的过程其它层是无法看见了的,它就像黑箱子,在接受视图请求的数据之后,然后返回最终的处理结果。MVVM 最主要的核心就是业务模型的设计,一个典型的应用例子就是目前流行的 EJB 模型,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但是它不能作为应用设计模型的框架。
控制器(Controller)可以理解为接收用户的请求,然后视图和模型匹配在一起,一起再完成用户请求。它有非常明显的作用在划分控制层上,可以很清晰地告诉你,它就是一个分发器,选择什么样的模型、视图,可以完成用户的什么样的请求。控制层不做所有的数据处理,比如说:用户点击一个连接,控制层接受到请求之后,并不处理业务信息,它只是向模型传递用户的信息,同时告诉模型做什么,然后选择符合需求的视图返回给用户。
2.1.2 B/S结构
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题。
2.1.3 PHP介绍
PHP是一种面向对象的程序设计语言,类是PHP程序的基本组成单元,类中又包含了属性和方法,在类中又可以创建无数个对象。类中包含的主要成员是字段和方法,字段是指一种数据变量,方法是指对字段进行操作的集合,包括给其他变量赋值、调用方法等。PHP代码都是编写在类体中,类体中的每个数据项都可以看作是一个对象,PHP不支持类的多重继承,但可以支持接口的多重继承,并且支持类和接口的实现。由于PHP通常在网络环境中使用,所以PHP提供了一个防止代码恶意攻击的安全机制,同时,PHP具有强类型机制、自动收集垃圾和异常处理等特性,这些都是PHP语言健壮性的重要保证。
1、PHP语言具有如下特点:
(1)PHP 结合 C、Java、Perl 以及自创的新语法形成了自己独特的语法。
(2)PHP可以更快速的执行动态网页,当然这只是相对于CGI或者Perl来说,PHP可以在HTML文档中嵌入程序,而且去执行,另外PHP能够实现CGI的所有功能,因此说明PHP具有很强大的功能。
(3)大部分当下流行的数据库和操作系统PHP语言都能够支持。
(4)PHP语言的最重要特点就是可以让C、C++进行扩展
2、PHP语言具有如下优势:
(1)开放源代码:事实上PHP的所有源代码都可以得到。
(2)免费性:PHP是开源代码并且免费
(3)快捷性:PHP对于初学者来说,它不止编辑简单可以嵌入与HTML语言中,而且对于程序开发和运行也是非常快速的,并且非常容易掌握。
(4)跨平台性强:PHP是可以在服务器运行的脚本语言,所以在UNIX、Android、Mac OS、WINDOWS等操作平台上都可以运行。
(5)效率高:PHP对系统资源的消耗相当少,所以它的效率高。
(6)图像处理:PHP不止是可以使用GD2对图像进行处理,而且他还可以完成对图像的创建。
(7)面向对象:php4、php5对于PHP在面向对象上,有了许多的改进,PHP语言开发大型商业程序也是可以胜任的。
2.1.4 Mysql数据库
Mysql 经过多次的更新,功能层面已经非常的丰富和完善了,从Mysql4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的Mysql支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。
针对本文中设计的校园论坛在实际的实现过程中,最终选择Mysql数据库的主要原因在于在企业的应用系统应用及开发的过程中会存在大量的数据库比较频繁的操作,而且数据的安全性要求也是非常的高。综合这些因素,最终选择安全性系数比较高的Mysql来对校园论坛后台数据进行存储操作。
第三章 校园论坛分析
3.1 可行性分析
3.1.1 技术可行性分析
从开发工具来看,由于校园论坛是基于PHP的,因此有很多开发工具都可以进行开发,这些功能强大的开发工具可以给我来设计校园论坛带来非常大的方便。
从校园论坛的本身技术来说,对于我来开发一个校园论坛这个毕设是不费事的。校园论坛的开发可以简单的分为前台端、后台端开发以及数据库开发。其中的大部分技术难点在我上学时已经使用过了,同时网络上很多技术点可以让我来借鉴。Web后台管理使用PHP的Thinkphp架构开发,数据库使用mysql,因此为我在开发校园论坛这个毕设上省去了很多多余代码,这给我的毕设项目编写带来了极大的便利。综上所述,从技术层面来看开发校园论坛是可行的。
从用户体验来看,市面上很多被广泛使用的系统案例可以让我来参考,因此我可以综合它们的页面交互设计的优点,基于我的毕设项目特点来进行改版,最后达到令用户满意的页面交互体验。综上所述,从技术层面来看开发校园论坛是可行的。
3.1.2 经济可行性分析
从校园论坛的开发成本来看,校园论坛的设计和开发都是我自己完成的,没有其他成本上的开销。
从校园论坛的维护成本来看,校园论坛的开发遵循一套完整的代码编写规范,并且校园论坛的结构设计非常灵活,遵循高内聚低耦合的原则,因此易于维护和迭代开发。
在校园论坛上线之后,上线前期我会根据真实需求来调查,对使用我开发的校园论坛来制定一套符合的使用费。系统运行稳定后我会将推广范围到其他的校园当中,其他校园可以使用我的校园论坛,只需要缴纳一点点的定金,我会给他们引入广告投资和自营业务。
综合以上的分析,校园论坛所带来的经济效益将会带来极大的收益。并且随着我的推广,来使用我开发的校园论坛的市场将越来越大,校园论坛带来的利润也就越来越多。因此,从经济层面来看开发校园论坛的是可行的。
3.2 系统需求分析
3.2.1 功能性需求分析
校园论坛需要满足的需求有以下几个:
1.信息获取方便,用户可在网页上快速浏览到新的信息
2.查看校园资讯详情等。
3.注册登录,需要吸引用户,即通过注册来提高用户的存留率。
4.修改用户信息,可以修改用户密码或者用户名等一些个性化操作。
5.管理员功能,管理员可以对用户或者论坛类型、资讯类型进行管理。
6.系统安全,操作简便,不过于复杂。
7.系统可以稳定运行,不存在卡顿等问题造成用户反感。
3.2.2 非功能性分析
校园论坛的非功能性需求比如校园论坛的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表3-1校园论坛非功能需求表
安全性 |
主要指校园论坛数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 |
可靠性是指校园论坛能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 |
性能是影响校园论坛占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 |
比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 |
用户只要跟着校园论坛的页面展示内容进行操作,就可以了。 |
可维护性 |
校园论坛开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
3.3 系统用例分析
根据上一节功能分析,可以得出系统的用例,学生角色用例如图2.1所示。

图3.1 校园论坛中学生角色用例图
校园论坛的管理员是维护整个校园论坛中一系列数据流程,管理员角色用例如图2.2所示。

图3.2 校园论坛管理员角色用例图
第四章 系统总体设计
4.1 系统模块设计
根据第二章中校园论坛的功能分析可知,校园论坛中整体功能模块图如图4.1所示,

图4.1 校园论坛功能模块图
4.2 数据库设计
4.3.1 数据库概念结构设计
下面是整个校园论坛中主要的数据库表总E-R实体关系图。

图4.2 校园论坛总E-R关系图
4.2.2 数据库逻辑结构设计
通过上一小节中校园论坛中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表access_token (登陆访问时长)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
表article (文章:用于内容管理系统的文章)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 |
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 |
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 |
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 |
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 |
|
12 |
img |
varchar |
255 |
0 |
Y |
N |