《计算机网络管理员技师资格考评论文BBS论坛动态网站.doc》由会员分享,可在线阅读,更多相关《计算机网络管理员技师资格考评论文BBS论坛动态网站.doc(28页珍藏版)》请在三一办公上搜索。
1、计算机网络管理员技师资格考评论文论文题目:校园BBS论坛单位名称:_*_作 者:_ *_2011年03月02日计算机网络管理员技师资格考评论文论文题目:校园BBS论坛作 者:_*_ _职业技能鉴定鉴定等级:_技 师_单位名称:_*8*_单位地址: *指导教师:_*_2011年03月02目 录摘 要II引 言11 开发环境概述21.1 Apache软件介绍21.2 PHP技术介绍21.3 MySQL数据库介绍21.4 Dreamweaver介绍32 BBS论坛的系统设计42.1系统的功能模块设计42.2数据库设计52.3 系统流程设计83 BBS论坛的详细实现103.1数据库连接和断开103.2
2、 用户前台功能设计113.3 后台管理流程设计174 BBS系统运行测试20结 论22参考文献23摘 要 本文论述了一个基于PHP+Mysql数据库技术的BBS论坛。BBS作为一种对外的展示窗口,进行内外信息交流,已成为大众的广泛需要。通过论坛,用户可以就自己的专业和爱好能和其他的用户进行及时专业的交流,这样以来我们就可以在网络这个虚拟的空间中方便地实现交流。BBS论坛是我们在这个地球村中生活的重要交流工具。所以我选择使用PHP+MySQL技术开发BBS论坛这一课题作为毕业设计。本论坛主要为校园师生们提供了一个交流的平台,同学们在这里可以发表和浏览自己的学习心得或者是新鲜事物。本论坛是基于PH
3、P+MySQL+Apache的论坛系统,主要做到了以下功能:用户注册、用户登录、发表帖子、回复帖子、管理员后台登录、论坛类别管理、版块管理、用户管理等。关键字: BBS论坛系统 ;PHP; Mysql数据库; Apache引 言在Internet飞速发展的今天,网络正以一种前所未有的冲击力在影响着人类的活动,包括人类的生产和日常生活。网络的衍生和发展,颠覆了传统的信息传播方式,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet
4、在网站上发表自己对社会对生活的理解和建议,所以便诞生了BBS。BBS即论坛系统,是Internet形成初期就出现的Web应用,至今仍是最常见也是用户最常用的Web程序之一,论坛具有大量的用户群,具有顽强的生命力,一直是网络经久不衰的应用。BBS论坛就是提供给注册用户一个平台,注册会员以后,用户登录论坛,在这个平台上发表文章、阅读文章、回复文章等等。而本次课题的设计目的就是搭建一个校园BBS论坛,采用的技术主要是基于服务器端的PHP+Apache+MySQL,以及网页编程语言HTML,采用Dreamweaver作为开发工具。1 开发环境概述本论坛是通过WEB服务器脚本语言PHP和数据服务器MyS
5、QL而开发的一套网络管理系统。1.1 Apache软件介绍Apache是最流行的HTTP服务器软件之一。快速、可靠、可通过简单的API扩展,Per1/Python解释器可被编译到服务器中,完全免费,完全源代码开放。如果你需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。在Internet中的Web服务器领域内,Apache占有无可争议的领先地位。1.2 PHP技术介绍PHP是Hypertext Preprocessor(超文本预处理程序)的简称。实际上,该产品开始时作“personal home tools”(个人主页工具);但是,当它的适用范围日趋广泛后,一个更适合的
6、名字被大家一致接受。我们可以给设计的PHP文件随意起文件扩展名,但一般建议使用.php、.php3、和phtml。当前使用的一般是第四版的PHP,称为PHP4,也可以简称为PHP。PHP是一种服务器端的嵌入式脚本语言。它的语法借鉴了C,Java和Per1,同时也自创了一些PHP特有的功能。PHP语言的目的是为了让Web程序员能够更便捷地编写动态网页。1.3 MySQL数据库介绍MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降
7、低网站总体拥有成本而选择了MySQL作为网站数据库。1.4 Dreamweaver介绍Macromedia Dreamweaver 是一款专业的HTML编辑器,用于对Web站点、Web页和Web应用程序进行设计、编码和开发。Dreamweaver还提供了功能全面的编码环境,其中包括代码编辑工具(例如代码颜色和标签完成):有关HTML、层叠样式表(CSS)、java script、ColdFusion标记语言(CFML)、Microsoft Active Server Pages(ASP)和JavaServer Pages(JSP)的参考资料。Dreamweaver还是您可以使用服务器技术(例如
8、CFML、ASP.NET、ASP、JSP和PHP)生成由动态数据库支持的Web应用程序。Dreamweaver可以完全自定义。您可以创建您自己的对象和命令,修改快捷键,甚至编写javascript代码,用新的行为、属性检查器和站点报告来扩Dreamweaver的功能。2 BBS论坛的系统设计2.1系统的功能模块设计本论坛的两大角色就是论坛用户和论坛管理员。首先,论坛用户就是论坛的使用者,他们可以浏览主题、发表主题、回复主题,具体功能模块参见图2-1 普通用户的使用功能结构图 ;其次,论坛管理员就是论坛的管理者,论坛管理员具备论坛的最高管理权限,例如,既可以删除某个主题、某个用户以外,还可以管理
9、论坛板块,包括,添加板块、删除板块等功能,具体模块参见图2-2。普通用户注册登录/退出浏览主题发表主题删除主题修改个人信息图2-1 普通用户的使用功能结构管理员用户户登录/退出用户管理主题浏览主题删除增加板块删除板块图2-2 论坛管理员的使用功能结构图2.2数据库设计 要使用MySQL,首先要创建一个数据库,在此我们将数据库命名为mybbs,然后根据论坛要实现的功能来创建相关数据表。本网站主要的数据表主要有如下几个: 普通用户信息表(users)论坛主题表(topics)论坛板块表(boards)管理员信息表(admins)表的设计:表2-1 普通用户信息表(users)列名类型描述user_
10、id自动编号用户iduser_name文本用户名称passwd文本用户密码email文本用户emailreg_ip文本注册IP地址reg_time日期/时间注册时间login_ip文本最近一次登录的IP地址login_time日期/时间最近一次登录的时间come_from文本来自何处表2-2 论坛主题表(topics)列名类型描述id自动编号主题IDbid数字论坛版块IDfid数字被回复主题的ID,即父IDuser_id数字发帖用户的IDtitle文本主题标题content文本主题内容post_time日期/时间发帖时间edit_time日期/时间修改时间reply_time日期/时间回复时间
11、表2-3 论坛板块表(boards)列名类型描述id自动编号板块IDboard_name文本板块名称board_desc文本板块相关描述build_time日期/时间板块建立时间表2-4 管理员信息表(admins)列名类型描述id自动编号管理员IDname文本管理员名称passwd备注管理员密码email文本管理员emaillogin_time日期/时间最近一次登陆时间2.3 系统流程设计我们从用户和管理员两个角度分别分析了论坛系统的流程。流程图分为管理员流程图2-3和用户流程图2-4。系统管理员 登录权限验证板块管理页面主题管理页面管理后台首页用户管理页面图2-3 管理员使用论坛系统的流程
12、分析图验证未通过已登录未登录普通用户论坛首页浏览主题发表主题是否登陆发表主题已注册发表、编辑、删除主题登录登录信息验证未注册注册注册信息注册成功论坛首页图2-4普通用户使用论坛系统的流程分析图3 BBS论坛的详细实现 在讲述具体功能开发之前,先介绍一下本论坛系统的目录结构。在本论坛系统的根目录下,有如下图3-1所示的子目录结构。 图3-1 系统目录结构图admin目录下存放的是管理员后台管理的程序和页面。 include目录下存放的是数据库功能程序、论坛系统函数程序、全局变量配置文件和常用函数文件。templates目录下存放前端程序使用的HTML文件。 3.1数据库连接和断开数据库连接的功能
13、,几乎在该论坛系统的前端、后台管理中的每个程序中都会用到。为此,我们将数据库连接的操作单独放在一个文件中,某程序使用时,直接包含该文件即可。下面的代码即是数据库连接操作功能的PHP程序文件(db_mysql.php):3.2 用户前台功能设计因为我们做的只是一个简易的论坛系统,所以在界面上没有做过多复杂修饰,简洁而且清晰明了,只是注重基本功能的实现。论坛首页面的如图3-2校园BBS论坛首页截图所示:图3-2 校园BBS论坛首页截图论坛首页的主要功能是,按顺序列出论坛内目前所有的板块名称及其描述。并将板块名称加上链接,链接到该板块帖子列表页。我们将首页程序命名为index.php。index.p
14、hp程序要做的首先是要从数据库中找出论坛板块的信息,如板块名称、板块描述等,并将其赋给相关变量。而首页模版文件board.htm要通过PHP代码include_once(template/board.htm)包含到index.php中。另外还要通过语句:include_once(include/db_mysql.php);include_once(include/common.php);$conn = db_connect($h,$p,$u,$db);来连接数据库文件。其中db_mysql.php是数据库连接操作的程序,common.php是定义论坛常用函数的程序。进入首页后,用户若想要要在论
15、坛中发表帖子,回复帖子,则需要要注册一个自己的帐号。实现用户注册功能,首先建立了用户注册页面reg.html,效果如图3-3用户注册页面截图所示:图3-3 用户注册页面截图在这个页面中的表单将用户填写的注册信息提交到程序register.php做处理,register.php将完成注册信息的验证和数据插入操作。代码如下:$user_name = $_POSTusername;$passwd = $_POSTpasswd;$passwd1 = $_POSTpasswd1;$email = $_POSTemail;$come_from = $_POSTfrom;$reg_ip = $_SERVER
16、REMOTE_ADDR; $sql=insert into users set user_name=.mysql_escape_string($user_name).,passwd=.mysql_escape_string($pwd).,email=.mysql_escape_string($email).,reg_ip=.$reg_ip.,reg_time=NOW(),come_from=.$come_from.;mysql_query($sql) or die (ERROR: .mysql_error();首先判断用户提交的信息是否为空,如果为空,则输出错误提示信息。如图3-4提示信息截图
17、所示:图3-4 提示信息截图论坛用户登录的程序login.php,代码如下: $user_name = $_POSTusername; $passwd = $_POSTpasswd;/将表单内容赋值给函数 $sql = select user_id from users where user_name=.mysql_escape_string($user_name). and passwd=.mysql_escape_string($pw).;/验证用户登录信息是否与数据库信息匹配 $sql = update users set login_ip=.$login_ip.,login_time=
18、NOW() where user_id=.$user_id;/更新用户登录的IP和时间 登录界面如图3-5普通用户登录页面截图所示:图3-5 普通用户登录页面截图当用户登录成功后,选择论坛板块进入主题列表页,会看到欢迎语和注销链接。如图3-6用户登录后页面截图所示:图3-6 用户登录后页面截图 用户登录以后就可以直接在发表主题的内容框中输入帖子的内容,然后发帖。另外,回复、编辑帖子从本质上讲也属于发帖,所以发表主题的程序里也增加了对回复和编辑主题功能的处理。帖子列表页的作用是,列出该板块内所有主题的内容,如果该主题有回复,回复的内容也要列在该主题的下方,并且回复的最前部分有一定长度空白的缩进,
19、从而形成树状显示效果。效果如图3-7查看回复帖子页面截图所示:图3-7 查看回复帖子页面截图实现代码如下:$sql=select user_id from users where user_name=.mysql_escape_string($user_name);/验证用户名和密码$bid = $_POSTbid;$content = $_POSTcontent;$fid = $_POSTtid; /主题帖id$action = $_POSTactions; /回复帖操作选项,如回复、修改等。$sql = insert into topics (bid,fid,user_id,content
20、,post_time) values($bid,$fid,$user_id,$content,NOW();/将发帖内容等选项插入数据库3.3 后台管理流程设计 后台管理功能包括管理员登录功能、主题帖及其回复帖的管理、板块管理以及注册管理。为了区分前端程序,我们特将后台管理程序单独放在admin目录下。 论坛管理员后台登录界面如图3-8论坛管理员后台登录截图所示:图3-8 论坛管理员后台登录截图实现管理员后台登录功能的程序如下:$user_name = $_POSTusername;$passwd = $_POSTpasswd;/把表单里的内容赋值给程序 $sql=select user_id
21、from users where user_name=.mysql_escape_string($user_name). and passwd=.mysql_escape_string($pw).;/验证用户登录信息是否与数据库信息匹配$_SESSIONuser_id = $user_id; $_SESSIONuser_name = $user_name;/通过SESSION对用户身份进行验证当管理员登录成功后,程序将直接转入论坛管理的主界面,如图3-9所示:图3-9 后台管理首页面截图该界面通过两部分实现,一个是左半部分的后台管理的导航程序(framelist.htm),右半部是后台管理的信
22、息显示程序(main.php)。 从framelist.htm代码来看,左边导航设置了三个链接,分别是后台的管理三个功能:主题管理功能,板块管理功能,用户管理功能。其中默认管理员登录首页面是主题管理界面(topic_list.php),效果如图3-9后台管理首页面所示。主要代码如下:/默认操作为主题列表的操作。在板块管理功能页面(board_list.php)添加新的板块等操作,通过使用SQL语句将数据插入数据库表格boards,代码为 $sql = select id,board_name from boards; 具体页面设计的效果如图3-10管理员添加论坛页面截图所示:图3-10 管理员
23、添加论坛页面截图 用户管理页面 (user_list.php)的功能是对已经注册的用户进行管理,通过不同的排序方式可以具体查看用户登录信息,再对用户信息具体验证之后管理员可以对不确定的用户进行删除等操作,具体页面效果如图3-12管理用户信息页面所示:图3-12 管理用户信息页面截图 4 BBS系统运行测试网页在运行时,往往会弹出错误提示,为了不让后台错误显示在显示器前端,我们特创建了一个系统全局数据的程序文件setting.php,全局数据是指一些通用的错误提示、页面标题等字符串信息,因为这些信息可能会在很多程序中用到,所以将这些信息存放在单独一个文件中,当其他程序要用到时只需包含该文件即可。
24、?php/*设置全局变量*/错误信息$ERR = array();$ERRNO_BOARD = 暂无论坛;$ERRNO_TOPIC = 该论坛暂无主题帖;$ERRBOARD_NOT_EXIST = 板块不存在;$ERRTOPIC_NOT_EXIST = 帖子不存在;$ERRNO_PARAM = 请求参数有误;$ERRINVALID_PAGE = 无效页数;$ERRUSER_NOT_EXIT = 用户不存在;$ERRNOT_LOGIN = 请登录后执行此操作;$ERRINVALID_USER = 用户名或密码错误;$ERRNONE_CONTENT = 发贴内容不能为空;$ERROP_ILLEGA
25、L = 非法操作;/页面标题$HTML_TITLE = array();$HTML_TITLEboard = 论坛列表;$HTML_TITLElist = 帖子列表;$HTML_TITLEview = 查看、回复帖子;$HTML_TITLEuserinfo = 用户信息;$HTML_TITLEmod = 修改帖子;/功能选项$FUNC = array();$FUNCreply = 回复;$FUNCmodify = 修改;$FUNCdelete = 删除;$FUNCnewpost = 发贴;$FUNCrefresh = 刷新;$FUNCnotlogin = 请登录后发贴或回复 &nbs
26、p; 注册;$FUNClogin1 = 登录;$FUNClogin2 = 用户名: 密码:;$FUNCregister = 注册;$FUNCuser_name = 用户名;$FUNCheader_link = MyBBS 简易论坛系统;$FUNCfooter_link = 版权所有 © 2007 ?结 论经过一个多月的辛苦努力,课程的设计终于按时完成了,这期间学习到了很多东西。顺利完成这次的课程设计首先要感谢*和*老师,给予了我悉心的指导。最和由我和另外一同学共同制作完成了这个校园BBS论坛,成功实现了用户登录、注册、发表主题、回复
27、主题,以及管理员后台登录与主题管理等的一系列功能。我们从刚开始的环境搭建慢慢学起,虽然中间遇到很到比较头疼的问题,但都耐心的翻阅书籍和借助老师的帮忙,一步一步完成了论坛系统的建设。回顾整个工作过程,可以从中体会到PHP语言的强大,以往都是通过图形界面制作网页,而这次利用PHP编程语言编写了动态网页,在系统界面风格统一的基础上用PHP语言创建页面动态代码,具体实现功能如下所示:前端程序开发:用户登录和注销、主题列表显示、发表新主题、修改/删除主题、回复主题以及用户信息浏览等。后台程序开发:管理员登录、主题帖的管理、板块管理及用户管理等。由于时间仓促,经验有限,还有很多值得改进和完善的地方。比如有
28、些页面之间的联系不够清晰,很多模块之间的层次感不够强;页面的内容不算太丰富,原打算还有一个主题搜索功能的,但是由于时间和经验问题,在这次的课程设计中没有把它完善好。之后我们还会继续将这个论坛完善好,争取实现更多论坛功能,最后能够通过服务器上传到网上去,真正实现师生间自由交流的愿望。 参考文献1李志文等编著.实例精通Dreamweaver与PHP&MySQL整合应用.北京电子工业出版社.2009.2.2张银鶴,肖新峰,崔程编著.PHP+Ajax网站开发典型实例.北京电子工业出版社.2009.1.3马忠超等编著.零基础学PHP.机械工业出版社.2008.3.4宫垂刚等编著.PHP实例精通.机械工业出版社.2009.3.5郑海生等编著.零基础学PHP+MySQL.机械工业出版社.2009.4.6张亚飞编著.PHP开发王.北京电子工业出版社,2008.6.7HTML/CSS/JavaScript标准教程:实例版(第2版).北京电子工业出版社,2009.3.8 澳威利/汤姆森 著. PHP+MySQL web开发. 机械工业出版社, 2009.4.9 杜江 编著. php5完全攻略. 北京:电子工业出版社,2010.5.10 陈浩 译者.PHP程序设计. 北京:电子工业出版社,2005.1.