个人博客课程设计.docx
- 文档编号:13952326
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:17
- 大小:122.13KB
个人博客课程设计.docx
《个人博客课程设计.docx》由会员分享,可在线阅读,更多相关《个人博客课程设计.docx(17页珍藏版)》请在冰点文库上搜索。
个人博客课程设计
PHP课程设计
个人博客网站开发
学院:
专业:
姓名:
学号:
指导老师:
完成日期:
1系统概述
1.1项目背景
Blog,是Weblog的简称。
Weblog,其实是Web和Log的组合词。
Web,指WorldWideWeb,当然是指互连网了;Log的原义则是“航海日志”,后指任何类型的流水记录。
合在一起来理解,Weblog就是在网络上的一种流水记录形式或者简称“网络日志”。
目前进行网站开发的语言很多,如ASP、PHP、JSP、ASP.NET等。
本项目采用主流的PHP+HTML框架完成对个人博客的开发。
1.2系统开发的目标
1.2.1任何拥有博客的人都可以做到
(1)登录博客系统浏览文章
(2)管理自己博客的基本信息
(3)撰写个人随笔
(4)处理留言、文章评论等内容
1.2.2访问博客系统的人,可以做到
游览博客系统中的文章目录、评论博客系统中的内容,只有博客管理员登录系统之后,才能进行管理。
而博客系统的访问者不需要注册,也不需要登录就可以访问博客系统中的内容。
1.4系统概述
一个博客其实就是由一序列网页组成的,它通常是由简短且经常更新的帖子所构成的,这些张贴的文章都按照年份和日期倒序列排列,能按照日期和主题检索。
博客的内容和目的有很大的不同,有到其他网站的超级链接;有对其他网站的评论;有个人的日记,日常所思所想;有个人照片、诗歌、散文,甚至科幻小说的发表。
正是由于博客能收容这些不拘于个人思想的表达,使博客这种交流和表达方式日益红火起来,博客秉承了个人网站的自由精神,也开拓了激发创造的新模式,能张扬人的个性,从这个意义上说,博客将会变得越来越普及,越来越为更多的人接受。
本系统主要完成以下功能。
1.客户界面部分
我的文章
留言
用户注册/登录
首页:
最新评论,最新文章
2.管理界面部分
文章管理
留言管理
基本设置
2系统分析
2.2需求分析
在可行性分析阶段已经简要地分析和研究了本系统的基本需求,也论证了开发平台及软件的可行性,但为了明确系统设计的目标,了解用户的需求,现对用户需求作以调研,从而进一步明确了设计所实现子系统的功能。
2.2.1管理员登录
在调研中了解到,用户想要使用系统,首先要有一个友好的用户注册界面,其次,用户需要经历登录验证过程,只有合法的拥有管理员身份的用户才可以使用系统中的管理功能,这样做可以防止非法用户登录并使用本系统,妨害数据安全。
用户登录。
通过系统登录验证,用户成功进入系统并开始使用其中功能。
2.2.2文章管理
文章管理是用户所有文章的信息,用户可以进入此处进行相关文章的管理。
这部分主要包括以下方面:
(1)文章信息显示。
显示出所有文章的大概信息。
(2)发表新文章。
可以发表新的文章。
(3)删除文章。
允许用户对文章信息进行删除操作。
2.2.3系统信息管理
系统开始运行之后,随着时间的变化会有想要更改系统的相关信息的要求,比如:
修改博客的个人头像,爱好,最难忘的事等等,因此需要提供信息修改的功能。
2.3系统的主要技术分析
系统开发平台
WAMP集成环境开发平台。
2.4数据分析
博客系统中,主要是管理用户的文章、留言、系统信息等数据。
数据的类型决定了程序对数据的处理方式也就是算法,因此,数据是系统实现分析的起点。
现通过数据流图的方式分析系统中数据的流动和处理。
对系统的管理员,在登录系统后,本系统接受管理员的修改、添加、删除请求,通过分析将这种请求转化成相应的SQL语句执行对数据库的相关的操作,并将执行的相应结果送回系统中。
系统接收到数据库返回的结果集,经过一定的分析处理,将其转化成ASP页面,返回到客户端显示给用户。
2.5数据流图
博客整体图
文章管理细节图
3数据库设计
3.1数据库技术概述
数据库(Database),是按照数据结构来组织、存储和管理数据的仓库,是用于查询的大量数据的存储区域。
使用数据库可以带来许多好处:
如减少了数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等等。
近年来推出的计算机关系数据库管理系统,还具有操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强等诸多优点。
3.2数据库选择
本系统所采用的数据库是mysql数据库
3.3数据库逻辑结构设计和约束设置
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库逻辑结构。
博客系统中各个表的设计结果如下面表格所示。
每个表格表示在数据库中的一个表:
字段名
含义
字段类型
约束
id
账号
varchar(20)
主键
passwd
密码
varchar(20)
非空
uname
用户名
varchar(50)
非空
sex
性别
varchar(10)
只能取‘男’或‘女’
age
年龄
integer
-----
用户表-wyb_users
博文表-wyb_articles
字段名
含义
字段类型
约束
bid
博文编号
number
自动增长列,主键
title
博文题目
varchar(255)
非空
type_name
博文类型
varchar(255)
与wyb_types表中的type_name外键关联
content
博文内容
varchar(2000)
----
time
写入时间
date
----
类别表-wyb_types
字段名
含义
字段类型
约束
type_name
类名名称
varchar(50)
主键
describe
分类描述
varchar(500)
非空
分类表-wyb_classify
字段名
含义
字段类型
约束
type_name
bid
类名名称
博文编号
varchar(50)
number
(type_name,bid)联合主键,与wyb_articles表中的bid及与wyb_types表中的type_name外键关联,且级联删除。
评论表-wyb_comments
字段名
含义
字段类型
约束
bid
uname
time
博文编号
用户名
写入时间
number
varchar(50)
date
(bid,user,time);联合主键,与wyb_articles表的bid外键关联,且级联删除。
comment
评论内容
varchar(500)
非空
4系统设计
对博客系统进行系统分析、数据库设计之后,本章将主要介绍系统各功能模块的设计及其实现。
软件所实现的功能强弱是衡量一个软件的最根本的标准。
通过对系统的全面分析并结合调研的情况,确定了本系统的功能模块图。
本章先从系统总体结构设计介绍,接着分别对公用模块、客户界面、管理对功能模块加以描述。
4.1系统总体设计
本系统数据库采用Mysql,Web服务器采用Apache
4.2公用模块的编写
4.2.1数据库连接文件
为了操作数据库方便,把连接数据库、查询、更新、插入、关闭连接等数据库操作都写在一个公用文件conn.db.php中,这样其他页面引入这个页面,就可以调用数据库操作方法,操作数据库了,这样便于提高程序的重用性。
4.2.2用户登录和注销
把判定用户登录和注销的程序写在首页Default.asp中。
当用户在首爷输入用户名和密码请求登录时,先从数据库查询该用户的用户名和密码是否正确,如果正确则把该用户的用户名和密码,写入用户Cookie,这样其他页面如果需要用户登录才能访问,只需要从Cookie取用户的用户名,如果能取得,则说明用户已经登录,否则用户未登录。
当然用Cookie记录用户登录是有风险的,最好用Session记录。
注销只需要设置记录用户的Cookie过期就可以了。
4.3客户界面的设计与实现
界面模块化,可以提高代码的重用性,能为编程提供很大便利,节省开发时间,提高开发效率
4.3.1界面头设计
(1)设计思想
为了体现简洁明快的风格,界面头不打算用很复杂的动画图片,顶部直接安排一个导航栏,让用户可以在首页、个人资料、博文、评论、博文管理、评论管理等模块之间方便的切换。
4.3.2首页设计与实现
首页是一个网站的窗口,长久留住一个用户靠网站强大的功能和丰富的内容,要想吸引用户,首页的设计精美和人性化也是重要的因素。
首先是给浏览者留下的第一印象。
所以设计要精美;首页是网站的导航图,所以设计要人性化,重点层次突出。
设计思想
首页直接引入前面设计的公用模块的界面头和尾。
首页左边给出浏览者一个清晰的导航。
在右边用户能登录/注册、最新更新的博文列表、评论,在左边显示最新更新的博文信息。
博客最核心的是文章,所以正文右边给出一块很大空间用以展示最新书写的几篇文章的标题和内容概要,用户单击博文标签能进入查看该文章的详细内容。
4.3.4用户注册模块设计
页面Register.aspx主要完成引导用户进行注册,首先会提供注册表让用户输入用户名和密码等,让用户输入注册信息,输入完成后,当用户单击[注册]按钮的时候,要对用户输入的注册信息简单认证,看用户信息是否验证,如果验证进行数据库验证,查看用户之前是否已经注册过,如果没有注册则插入一条新记录到数据库,完成注册。
4.3.5“文章评论”功能模块设计
在展现文章页面的末尾,提供接口供浏览者针对该文章发表评论,技术实现非常简单,就是提供发表评论标题和评论内容的文本框,让读者输入评论标题和内容,当读者单击[提交]按钮的时候,把评论标题和内容保存到数据库。
4.4管理界面设计
4.4.1“添加文章”功能模块
通过“添加文章”功能模块用户能设置文章标题,选择文章所属分类,填写文章概要和文章内容。
4.4.2“文章管理”功能模块
“文章管理”功能模块主要显示当前用户所写的所有文章,并能修改或者删除现有文章
4.4.3“评论管理”功能模块
主要php操作代码:
php
require"conn.db.php";
$action=$_GET['action'];
switch($action){
case"logout";
functionclearCookies(){
setcookie('username','');
//删除Cookie中的标识符为username的变量
}
clearCookies();
echo" //127.0.0.1/tpl/default/blog_index.htm>"; break; case"add": $name=$_POST['name']; $categoryId=$_POST['categoryId']; $content=$_POST['content']; $time=date("Y-m-dH: i: s"); $sql="insertintoarticle(motif,classify,content,time) values('$name','$categoryId','$content','$time')"; $result=mysql_query($sql); $sql="selectidfromarticlewheremotif='$name'andtime='$time'"; $result=mysql_query($sql); $row=mysql_fetch_array($result); $id=$row['id']; $sql="insertintoclassify(title,art_id,time) values('$categoryId','$id','$time')"; $result2=mysql_query($sql); if($result&&$result2){ echo"sucess"; echo" //127.0.0.1/tpl/admin/listBlog.htm>"; } else{ echo"fault"; echo" //127.0.0.1/tpl/admin/listBlog.htm>"; } break; case"del": $id=$_GET['id']; $sql="deletefromarticlewhereid='$id'"; $result=mysql_query($sql); if($result){ echo"sucess"; echo" //127.0.0.1/tpl/admin/listBlog.htm>"; } else{ echo"fault"; echo" //127.0.0.1/tpl/admin/listBlog.htm>"; } break; case"cla_del": $id=$_GET['id']; $title=$_GET['title']; $sql="deletefromclassifywhereart_id='$id'andtitle='$title'"; $result=mysql_query($sql); if($result){ echo"sucess"; echo" //127.0.0.1/tpl/admin/listClassify.htm>"; } else{ echo"fault"; echo" //127.0.0.1/tpl/admin/listClassify.htm>"; } break; case"com_del": $id=$_GET['id']; $time=$_GET['time']; $sql="deletefromcommentwhereart_id='$id'andtime='$time'"; $result=mysql_query($sql); if($result){ echo"sucess"; echo" //127.0.0.1/tpl/admin/listClassify.htm>"; } else{ echo"fault"; echo" //127.0.0.1/tpl/admin/listClassify.htm>"; } break; case"edit": $id=$_GET['id']; $name=$_POST['name']; $categoryId=$_POST['categoryId']; $content=$_POST['content']; $time=date("Y-m-dH: i: s"); $sql="updatearticlesetmotif='$name',classify='$categoryId',content='$content',time='$time'whereid='$id'"; $result=mysql_query($sql); if($result){ echo"sucess"; echo" //127.0.0.1/tpl/admin/listBlog.htm>"; } else{ echo"fault"; echo" //127.0.0.1/tpl/admin/listBlog.htm>"; } break; case"comment": $id=$_GET['id']; $name=$_COOKIE['username']; $content=$_POST['content']; $time=date("Y-m-dH: i: s"); $sql="insertintocomment(id,time,comment,user) values('$id','$time','$content','$name')"; $result=mysql_query($sql); if($result){ echo"sucess"; echo" //127.0.0.1/tpl/default/displayBlog.htm? id=".$id.">"; } else{ echo"fault"; echo" //127.0.0.1/tpl/default/displayBlog.htm? id=".$id.">"; } break; case"classify": $title=$_POST['title']; $describe=$_POST['describe']; $sql="insertintotitle(title,describe) values('$title','$describe')"; $result=mysql_query($sql); if($result){ echo"sucess"; echo" //127.0.0.1/tpl/admin/classify.htm>"; } else{ echo"fault"; echo" //127.0.0.1/tpl/admin/classify.htm>"; } break; } ? > 5.总结 通过对本系统的开发我深深收到了软件工程的重要性,一个软件项目有计划,需求分析,软件设计,编码,测试,运行维护等阶段,但基础在于软件需求分析,其是对“用户需求”进行更专业化的“描述”和转换。 只有知道了用户真正的需求,才能做出更符合逻辑的程序;其次是测试,通过一次次的测试,调试出更符合用户需求的代码。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 博客 课程设计