基于PHP+MySQL的个人博客系统
一、博客功能概述
本博客系统基于PHP+MySQL建立,实现的功能包括文章的添加、修改,文章评论,文章分类管理以及用户后台登陆。
二、数据库设计
本博客系统需要一个数据库,建立4个数据表,分别是:
categories:id/cat 用于保存文章分类
entries:id/cat_id/dateposted/subject/body 保存文章,同时记录文章分类,发布期
comments:id/blog_id/dateposted/name/comment 保存文章的评论,评论对应的文章
logins:id/username/password 保存用户数据
前三个表可以通过id,cat_id,blog_id很好的将文章、评论、分类联系到一起,同时这样的数据库设计便于文章的分类修改和管理。
三、脚本框架
博客所需的脚本如下:
config.php 用于记录博客的名称和作者以及博客部署跟目录
dbconnect.php 用于数据库连接
header.php 包含config.php和dbconnect.php两个脚本,是页面的头部
footer.php 博客页面的页脚,用于版权信息的现实
index.php 博客主体页面,包含header.php和footer.php,执行主要的脚本工作
viewentry.php 博客文章的浏览页面,通过参数查看不同文章
viewcat.php 文章分类浏览页面,通过参数浏览不同分类的文章
addentry.php 文章添加页面
addcat.php 文章分类添加页面
update.php 文章修改页面,通过传递不同参数进行不同文章的修改
login.php 用户登录
logout.php 用户注销
四、重要脚步说明
dbconnect.php
这个脚本用于数据库连接,在每个页面中都要用到,需要注意的是在这个脚步头部添加如下两句:
session_start();//开始会话
ob_start();//产生cookie,以便后边的使用header()函数
header.php
这里的头部显示信息时候需要判断用户是否登录,如果登录则显示文章添加和分类添加以及注销,如果没有登录,那么只显示登录链接。
index.php
默认数据库中的第一篇文章为首页显示的文章。显示文章,文章分类,评论,以及发表评论的提交表单。
如果要是显示的评论最多为5个,可以在查找数据库时候按照评论时间倒序ORDER BY dateposted排列然后限制LIMIT 5表示取出五条评论。
viewentry.php
与index.php类似,不同的是需要进行参数的处理,并且要防止URL攻击,如果出现异常请求,直接header()转移到首页。
update.php
在用户登录后每篇文章显示编辑链接以便转至update.php页面进行修改,修改的文章用传递的参数表示第几篇,如果用户没用登录,那么在请求本页面时候跳转到首页。
login.php
如果用户名、密码正确,那么在会话中注册username和password变量。
logout.php
主要脚步是以下两行:
session_start()
session_destroy();
然后转到首页。
五、后期处理
博客总体做完之后需要对博客脚步进行细节处理,主要包括防SQL注入攻击处理(即引号的转义,单引号为'双引号为"),防止留言包含JavaScript,进行尖括号替换(<和>),添加评论时输入验证码,防止恶意留言。