数据库课程设计-Web留言本-基于PHP5.6+MySQL5.6实现.docx_第1页
数据库课程设计-Web留言本-基于PHP5.6+MySQL5.6实现.docx_第2页
数据库课程设计-Web留言本-基于PHP5.6+MySQL5.6实现.docx_第3页
数据库课程设计-Web留言本-基于PHP5.6+MySQL5.6实现.docx_第4页
数据库课程设计-Web留言本-基于PHP5.6+MySQL5.6实现.docx_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统原理课程设计 1352453_王用 Web留言本系统TONGJI UNIVERSITY基于PHP和MySQL的Web留言本项目设计实验报告项目名称基于PHP5.6和MySQL5.6的Web留言本成员学院(系)电子与信息工程学院专 业计算机科学与技术指导教师日 期2015年 12 月 29 日摘要本系统为Web留言本系统,是一个简单的信息管理与发布系统,其开发主要包括数据库的建立和维护以及前端应用程序的开发两个方面。 经过分析,我使用了 PHP开发语言,开发了留言本系统中的各个模块,进行有效的操作。同时,该Web留言本系统还具有管理功能。在我们所开发的Web留言本系统中创建了两类用户普通用户和版主,通过身份验证后方可进入,游客可以进行浏览,但是不能操作。本系统还包含查询、插入、修改、删除等基本操作,在整个系统设计中充分利用了模块化的设计思想和开发方法,用户在从主界面模块在验证后进入每个子模块进行各个子系统的具体功能操作。在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成一个满意的可行系统。目录摘要2目录3第一章 系统概述6第二章 系统预览部分72.1 系统分析72.1.1 程序业务流程72.2 系统预览82.3 文件夹组织结构10第三章 系统数据库设计部分123.1 数据库概要说明123.2 数据库概念设计123.2.1 用户信息实体123.2.2 留言信息实体133.2.3 回复信息实体133.2.4 版主信息实体133.3 数据库逻辑设计143.3.1 tb_user(用户信息表)143.3.2 tb_leaveword(留言信息表)153.3.3 tb_replyword(回复留言信息表)153.3.4 tb_adm(管理员信息表)15第四章 系统设计174.1 公共模块设计174.1.1 数据库连接文件174.1.2 数据库初始化174.1.3 使用数据库的方式174.2 首页模块设计184.2.1 首页设计概述184.2.2 首页实现过程184.3用户注册模块设计194.3.1 用户注册模块概述194.3.2 用户注册模块实现过程194.4 添加留言模块设计204.4.1 添加留言模块概述204.4.2 添加留言模块实现过程204.4查看留言模块设计214.4.1 查看留言模块概述214.4.2 验证数据类型与取整214.4.3 查看留言模块实现过程224.5编辑留言模块设计224.5.1 编辑留言模块概述224.5.2 编辑留言模块实现过程234.6查询留言模块设计234.6.1 查询留言模块概述234.6.2 查询留言模块实现过程234.7版主模块设计244.7.1 版主模块概述244.7.2 验证登录用户是否为版主254.7.3 版主管理模块实现过程25第五章 总结275.1 开发过程中遇到的难点分析275.1.1 过滤敏感词275.1.2 分页显示留言信息285.2 开发总结28主要参考文献29附录一30附录二31第一章 系统概述数据库原理及应用课程的学习,其主要的目标是能利用课程中学习到的数据库知识与技术较好地开发设计出数据库应用系统,去解决各行各业信息化处理的要求。本实验主要在于巩固学生对数据库的基本原理和基础理论的理解,掌握数据库应用系统的设计开发的基本方法,进一步提高学生的综合运用所学的知识能力。为了使数据库的应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施、数据库系统运行与维护阶段。我按照以上几点开发了Web留言本系统。Web留言本系统要求较好的数据库知识与技术外,还要求掌握某种客户端开发工具或语言。这里我是采用B/S架构,利用相对简单易学易掌握的PHP来实现一个Web留言本系统。网络上随处可见各种各样的留言板,一个网页甚至是一条新闻都有一个留言板支持。而留言本是留言板的纵向延伸。留言本除具有留言、查看、回复、查询、删除留言等功能外,还增加了管理员的管理功能。留言本被广泛地应用于小规模企业,它不仅为企业员工提供了一个交流的平台,也成为企业与员工之间的交流的纽带。这次数据库的课程设计让我们对数据库的操作有了进一步的了解,受益匪浅。第二章 系统预览部分2.1 系统分析2.1.1 程序业务流程用户在使用留言本进行留言时,首先应该进行注册,注册成功之后即可登录本站。在登录该留言本的同时,系统会判断用户的级别,并根据用户的级别为其分配不同的权限,非该留言本的用户只具有查看留言内容的权限;普通注册用户具有添加留言、编辑个人留言和删除个人发布的留言,以及回复其他留言的权限;而管理员除具有上述权限外,还具有删除全部留言(即留言和回复)的权限,以及对自己发表的留言进行回复的权限。用户对该留言本进行操作的业务流程如图1.1所示。图1.1 留言本业务流程图2.2 系统预览留言本由多个板块组成。用户注册信息页面如图1.2所示,该页面显示了游客注册时需要填写的昵称、密码和个人资料等相关内容。发表留言的运行效果如图1.3所示,该页面用于注册后用户发表留言,包括留言主题和留言内容。图1.2 用户注册信息页面图1.3 用户发表留言信息页面查询页面运行效果如图1.4所示,该页显示执行查询后所查到的留言主题、留言内容,以及相关回复。图1.4 查询页面2.3 文件夹组织结构为了对系统文件有一个清晰的认识,这里从B/S角度出发,设计了构思合理、功能齐全的留言本,如图1.5所示。图1.5 留言本文件结构图第三章 系统数据库设计部分3.1 数据库概要说明在留言本中,采用的是MySQL数据库,用来存储注册用户的基本信息、留言信息、回复信息、管理员信息等。这里将数据库命名为guestbook,其中包含的数据表如图1.6所示。图1.6 数据库结构3.2 数据库概念设计根据系统分析和功能上的需要,规划出留言本中数据表的实体E-R图。包括用户信息实体、留言信息实体、回复信息实体和管理员信息实体。3.2.1 用户信息实体用户信息实体,包括用户名、密码、邮箱、头像等多项资料。用户信息实体E-R图如图1.7所示。图1.7 用户信息实体ER图3.2.2 留言信息实体留言信息实体,包括留言者、留言主题、留言内容、留言时间等。留言信息实体E-R图如图1.8所示。图1.8 留言信息实体ER图3.2.3 回复信息实体回复信息实体,包括回复者、回复主题、回复内容、回复时间等。回复信息实体E-R图如图1.9所示。图1.9 回复信息实体ER图3.2.4 版主信息实体版主信息实体,包括版主名称、版主登录密码、版主邮箱等。版主信息实体E-R图如图1.10所示。图1.10 版主信息实体ER图3.3 数据库逻辑设计根据设计好的E-R图在数据库中创建数据表,下面给出相关的数据表结构。3.3.1 tb_user(用户信息表)用户信息表用于存储用户的相关信息,用户信息表的结构如表1.11所示。表1.11 tb_user表的结构字段名称数据类型字段大小是否主键说明IDint4Y自动编号IDUserncvarchar50N用户名Userpwdvarchar50N用户密码Truenamevarchar50N用户真实姓名Emailvarchar50N用户E-mail地址Qqvarchar20N用户QQ号码Telvarchar20N用户联系电话Ipvarchar2N用户注册IPAddressvarchar250N用户联系地址Facevarchar50N用户头像RegtimedatetimeN用户注册时间Sexvarchar2N用户性别Usertypeint2N用户类型标记3.3.2 tb_leaveword(留言信息表)留言信息表存储了用户留言的相关信息,留言信息表的结构如表1.12所示。表1.12 tb_leaveword表的结构字段名称数据类型字段大小是否主键说明Idint8Y自动编号Useridint8N用户IDCreatetimedatetimeN发表留言时间Titlevarchar250N留言主题ContenttextN留言内容3.3.3 tb_replyword(回复留言信息表)回复留言信息表用于存储用户回复留言的信息,回复留言信息表的结构如表1.13所示。表1.13 tb_replyword表的结构字段名称数据类型字段大小是否主键说明IDint4Y自动编号IDUseridint4N用户留言IDCreatetimesdatetimeN回复时间Titlesvarchar100N回复主题ContentstextN回复内容Leave_idint4N回复者ID3.3.4 tb_adm(管理员信息表)管理员信息表用于存储管理员的信息,管理员信息表的结构如表1.14所示。本系统中管理员的帐号信息为:userword:wangpassword:wangyongf表1.14 tb_adm表的结构字段名称数据类型字段大小是否主键说明IDint5Y自动编号IDUserwordvarchar20N版主名称Passwordvarchar20N版主密码Emailvarchar30N版主Email地址Ipvarchar10N版主IP第四章 系统设计4.1 公共模块设计4.1.1 数据库连接文件在进行程序开发的过程中,有很多的地方涉及到数据库的应用。在应用数据库之前,首先要与数据库建立连接,因此可以将数据库的连接代码作为一个公共文件进行存储,在需要使用数据库连接文件的地方直接调用该文件即可,无须重复编写,既减少代码的冗余,也便于对数据库连接文件进行修改。在本项目中将数据库的连接代码存储于根目录下conn文件夹的conn.php文件中。为了方便部署,修改数据库的连接信息,定义了一个配置文件config.php,其位置为:guestbook/conn/config.php。其中部分代码如下:/* * 数据库配置文件 */return array(host = localhost,/主机user = root,/数据库用户名password = wangyongfs1996.,/密码dbname = guestbook,/数据库port = 3306,/端口,默认为3306charset = utf8/编码);注意:由于本机的MySQL服务器的用户名为root,密码为wangyongfs1996.。当在其他电脑上运行本程序时,需要在config.php文件中对MySQL服务器的用户名和密码等参数进行修改,以保证程序的正常运行。4.1.2 数据库初始化在guestbook/conn/文件夹中有本网站的初始数据guestbook.sql,请务必先将数据导入MySQL数据库中,然后再运行本程序!导入的方式为:先在MySQL中新建一个数据库guestbook,然后通过phpMyAdmin/Navicat for MySql等工具导入guest.sql,完成网站的初始化。4.1.3 使用数据库的方式成功创建数据库guestbook并导入数据后,如果某个页面中需要进行数据库的操作,在页面中直接通过include语句包含conn.php文件即可。其代码如下:4.2 首页模块设计4.2.1 首页设计概述本系统首页页面设计得比较简洁明了,主要包括以下4部分内容:(1) 首部导航栏:包括首页链接、用户注册、发表留言、查看留言、查询留言、版主管理和注销登录模块。(2) 左侧显示区:包括用户登录、万年历和最新留言模块。游客可以通过该区域登录留言本,以及了解最新的留言主题。(3) 主显示区:这里是留言本的最新留言。游客通过该区域可以查看最新的留言主题和留言内容。(4) 尾部显示区:这里是留言本的版权声明。留言本首页效果图如图1.15所示。图1.15 留言本首页4.2.2 首页实现过程在一个网站中,首页被访问的次数是比较多的。为了加快页面的运行速度、提高访问量,本项目首页使用include语句包含主要的功能模块。详细代码见guestbook/index.php4.3 用户注册模块设计4.3.1 用户注册模块概述留言本为了更好地与用户进行交流和沟通,创建了一个用户注册模块,通过用户注册模块,可以有效地对用户信息进行采集,并将合法的用户信息保存到指定的数据表中,实现与用户的长期沟通和交流。用户注册模块的运行结果如图1.16所示。图1.16 用户注册模块的运行结果4.3.2 用户注册模块实现过程注册模块的实现过程非常简单,首先阅读注册声明;然后填写用户注册的用户名和密码,提交后由系统判断输入的用户名是否被占用,如果未被占用则可以继续注册,将数据提交到表单处理页进行处理;最后,将用户注册的信息保存到指定的数据表中。用户注册模块由两个文件组成:reg.php文件用于填写详细的注册信息;savereg.php文件用于对表单中提交的数据进行处理,将数据保存到指定的数据表中。在savereg.php文件中,首先连接数据库,然后获取表单中提交的数据,并且判断提交的用户名是否被占用,最后将提交的数据进行处理,并将数据保存到指定的数据表中。详细的程序代码见源文件。4.4 添加留言模块设计4.4.1 添加留言模块概述当用户登录后,单击首页上的“发表留言”超链接,将加载发表留言表单。用户填写完留言标题、留言内容后,单击“发表”按钮,跳转到留言处理页进行处理。用户添加的留言将会保存到MySQL数据库中。添加留言界面如图1.17所示。图1.17 用户添加留言的运行结果4.4.2 添加留言模块实现过程添加留言模块,首先应建立用于留言的表单,该过程实现相对简单,这里不再赘述。然后,获取表单中提交的数据,对用户输入的留言信息进行敏感词过滤,将用户留言内容保存到数据库中。具体代码见saveleaveword.php。4.4 查看留言模块设计4.4.1 查看留言模块概述用户登录后,单击首页上的“查看留言”链接,将进入浏览页面。在浏览页面中,用户除了可以查看留言信息外,还可以看到对该留言的回复。如果留言或者回复是当前用户所发表的,那么还会看到修改的超级链接。如果回复是当前用户所发表的,那么,除显示上述超级链接外,还会显示删除的超级链接。查看留言页面的运行结果如图1.18所示。图1.18 查看留言页面4.4.2 验证数据类型与取整用户发表完留言后,可以通过查看留言模块查看用户的所有留言内容。由于用户的留言书目较多,如果在同一页面中显示所有的留言信息,则会给用户浏览带来很大的不便,所以通过分页的方式显示用户留言内容。在实现用户留言内容分页显示时,主要应用is_numeric函数判断用户通过GET方法提交的数据是否为数值型,并通过ceil()函数对页码数据进行向上取整。4.4.3 查看留言模块实现过程在查看留言模块中,以分页形式循环输出留言信息,并且对当前用户的权限进行判断,根据其权限控制输出的操作链接。显示用户留言信息的关键代码详见guestbook/lookleaveword.php。4.5 编辑留言模块设计4.5.1 编辑留言模块概述当用户浏览自己发表的留言或回复其他用户留言时,会显示编辑功能。用户可以通过这个编辑链接,对已发表的内容进行修改。编辑留言页面的运行结果如图1.19所示。图1.19 编辑留言页面的运行结果4.5.2 编辑留言模块实现过程为了保证用户的留言内容不被他人私自修改,在具体实现该模块功能时,采用每个用户只能对自己的留言内容进行修改的方式。具体实现时,将标识用户身份的SESSION变量的值与数据库中该条留言对应的留言者进行比较,如果二者相同,则说明该条留言为当前登录用户所发表的,在该条留言后显示“编辑”按钮。当用户单击“编辑”按钮后,即可实现留言信息的更改,并且在关闭弹出窗口的瞬间,留言信息的显示页面也会自动进行刷新。具体代码详见guestbook/editleaveword.php。4.6 查询留言模块设计4.6.1 查询留言模块概述查询留言是对数据库中的数据按条件进行筛选浏览。该留言本提供按主题、内容、留言者3种条件进行查询,用户可以任选其一作为查询条件进行快速查询。查询留言页面的运行结果如图1.20所示。图1.20 查询留言页面的运行结果4.6.2 查询留言模块实现过程当用户按要求添加完查找关键字,并选择了查找方式对表单进行提交后,程序将对用户提交的内容进行判断,并最终显示查询结果。实现该过程的关键代码详见guestbook/searchword.php。4.7 版主模块设计4.7.1 版主模块概述为了更好地管理和维护留言本,针对留言本设置了一个管理员,该管理员不在后台进行操作,而是在前台为管理员设置特殊的权限,也可以称之为版主。其实现的原理是:需要在MySQL数据库中,手动添加一条系统版主的数据,当版主想要对留言本进行管理时,只需单击首页上“版主”管理的超级链接,登录后即可。版主登录界面如图1.21所示,版主浏览如图1.22所示。图1.21 版主登录页面图1.22 版主浏览界面4.7.2 验证登录用户是否为版主版主单机首页上的“版主管理”超级链接进入版主登录界面。在版主登录模块中,首先判断版主名称和密码是否为空,然后获取表单提交的值,与数据库存储的值进行比较,判断提交的版主名称与密码是否与数据库中的版主名称和密码相对应,如果是登录成功,反之则登录失败,返回登陆界面。版主成功登录后,可以对用户提交的留言进行管理操作,如全主题删除、删除回复留言、对用户的留言进行回复等。所谓的全主题删除,即删除留言以及该留言的回复信息。其操作原理是:当版主单击“删除”按钮后,将弹出一个对话框提示版主是否真正删除该条留言及回复,如果用户单击对话框中的“确定”按钮,则该条留言及回复将被删除,反之不做任何操作。4.7.3 版主管理模块实现过程为了保持留言本的正常运行,页止操作权限的扩大,在版主登录处理页中,将使用JavaScript脚本限制用户与管理员在同一台计算机上登录的情况。版主登录处理页的具体代码详见guestbook/chklogin.php。当版主确认删除全主题留言后,将进入全主题删除处理页面对全主题留言进行删除。实现全主题删除的代码详见guestbook/deleteleaveword.php。注:本系统中留言本的设置的版主名称,密码等详见guestbook/readme.txt!第五章 总结5.1 开发过程中遇到的难点分析在开发这个Web留言本的过程中,我遇到了一些问题,不过,在查询了相关资料之后,都顺利解决了,希望以后的实验也能如此。5.1.1 过滤敏感词很多论坛、评论、贴吧都有过滤敏感词的功能。过滤敏感词通常使用一对一的过滤形式。例如,要过滤“色情”这个词汇,那么就要考虑内容里边是否含有“色情”这个词。对于敏感词的过滤,本模块使用正则表达式preg_match()函数来实现。本模块实现过滤敏感词的方法如下:首先,应用file()函数读取存储在文本文件中的敏感词汇(每个敏感词独立成一行),并将其存储在数组$file_word中。然后,应用for循环语句自动读取数组元素(敏感词),直接通过正则表达式检验用户提交的留言信息是否含有敏感词。当用户发表留言信息后,提交留言信息时,将留言信息与存储在数组中的敏感词进行对比,如果留言信息中含有敏感词,那么将弹出提示信息,否则留言信息发布成功。实现敏感词过滤的关键代码如下:if (is_file(“./filterwords.txt”) /判断给定文件名是否为一个正常的文件/把整个文件读入一个数组中$filter_word = file(“./filterwords.txt”);$str = $_POSTcontent;for ($i = 0; $i count($filter_word); $i+) /应用for循环语句对敏感词进行判断/判断传递的留言中是否含有敏感词if (preg_match(“/” . trim($filter_wordi) . “/i”, $str) echo “ alert(留言信息中包含敏感词!);history.back(-1); ”;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论