基于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 保存用户数据

 

前三个表可以通过idcat_idblog_id很好的将文章、评论、分类联系到一起,同时这样的数据库设计便于文章的分类修改和管理。

三、脚本框架

博客所需的脚本如下:

config.php 用于记录博客的名称和作者以及博客部署跟目录

dbconnect.php 用于数据库连接

header.php 包含config.phpdbconnect.php两个脚本,是页面的头部

footer.php 博客页面的页脚,用于版权信息的现实

index.php 博客主体页面,包含header.phpfooter.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

       如果用户名、密码正确,那么在会话中注册usernamepassword变量。

 

logout.php

主要脚步是以下两行:

session_start()

session_destroy();

然后转到首页。

五、后期处理

博客总体做完之后需要对博客脚步进行细节处理,主要包括防SQL注入攻击处理(即引号的转义,单引号为'双引号为&quot),防止留言包含JavaScript,进行尖括号替换(<>),添加评论时输入验证码,防止恶意留言。

posted @ 2011-08-28 12:59  Erebus_NET  阅读(2664)  评论(0编辑  收藏  举报