第四章 系统详细设计
$reghomepage=$_POST['txt_reghomepage']; $regintroduce=$_POST['txt_regintroduce'];
//个人主页 //介绍
4.12主页
主页中包括博客最新日志区、最新的留言,搜索功能,公告的显示,把这几个界面区合理的组合是布局和美工的重要之处。
图4-1 主页
首页比较简洁,主要包括以下几个部分 上部:包含导航栏 左部:显示系统的公告
右部:显示最新的日志和最新的留言
在主页的设计方面首先要准备好素材,一个好的页面设计好素材和布局是不可缺一的,系统所需要的素材我花了挺多时间去找的,最终还是比较满意,主要是自己去使用CSS布局的时候比较麻烦,很多东西移多了一点或少了一点,结果出来都会很不同,要自己去慢慢调试,不断的反复使用才能调出比较好看的页面
4.13 浏览日记
点击日记页面进入发表博客的界面warticle.php,在这里输入标题和正文后信息被发送到check_diary.php页面,在这里首先检查标题或内容是否为空,如有问题则报错进行提示;检查无误之后使用SQL ADD语句将文章信息插入到tb_article表中。
因为文章的数量可能较多,如果在一个页面全部列出可能会影响外观,因此每个页面的链接数要做一定限制,如10到15个,之后使用循环语句将content中的文章信息动态的显示在页面上。
15
华南理工大学广州学院本科毕业设计(论文)说明书
图4-2 博客文章列表
关键代码:
………………………
$page=$_GET['page']; //取得当前的页面编号 $eachpage=15; //每个页面显示15个链接 if(!$page) //判断是否为第一页 { $page=1; }
if(!$page||$page==1) //确定当前为第一页 { $start=0; //从数据库表中第一篇文章开始 } else {
$start=(($page-1)*$eachpage); //计算当前页面第一片文章在数据库表中的编号 } $sql=\在SQL语句中加入范围限制从$start到$eachpage结束 $result=mysql_query($sql); //执行查询 ………………….
while($rows=mysql_fetch_assoc($result))//while循环输出 { ……………echo $rows[title];…………….. //显示链接 } …………………..
之后还要加上页码栏以便用户转跳页面 判断页码的关键代码:
16
第四章 系统详细设计
if($page>1)//判断当前是否第一页 { $prepage=$page-1; //获取前一页的页码 }
$currentend=$start+$eachpage; //当前页码中最大的文章编
号 $sql=\查询表中的最大文章编
号 $result0=mysql_query($sql); $rows0=mysql_fetch_row($result0); $total=$rows0[0]; //获得最大的文章编号
if(((int)($total/$eachpage))<($total/$eachpage)) //计算当前最大的页码 {
$totalpage=((int)($total/$eachpage))+1; //页码数的计算方法为总文章数除以每页的文章数,结果为浮点数则取整加一 } else { $totalpage=(int)($total/$eachpage); }
if($total>$currentend) //当前页码中最大的文章编号和表中的最大文章编号相比,确定当前的页面是不是最后一页 {
if(!$page){ //是否为第一页 $nextpage=2; } else{ //取得下一页的页码 $nextpage=$page+1; } } ………………….. 输出页码。
用户点击article.php页面上的标题链接后进入文章正文浏览的界面show.php,普通用户可以查看文章的正文并发表评论,而管理员还可以修改文章的内容,用户权限的识别通过变量SESSION来判断。用户发表留言通过show.php页面下的留言面板进行留言,其代码与之前的博客文章发表较为相似,在这里不详细说明。
4.14 添加文章
当用户登录后,通过浏览日记页面中的写日记按钮,可以进行添加文章,想要使用文章管理模块,前提是用户必须登录,匿名用户是无法访问这些功能的;想要删除文章
和评论,前提是当前用户要么是管理员权限,要么是文章拥有者,否则不会显示删除功能的。这两方面的控制都需要session 的配合,本节就来讲一下session 的应用及常见的问题处理。session 的中文译名为“会话”,是指用户从进入网站开始,直到关闭网站这段时间内,所有网页共同使用的公共变量的存贮机制。session 比cookie 更有优势:session 是存储在服务器端的,不易被伪造;session 的存储没有长度限制;session 的控制更容易等。
在session的使用过程中,尽可能把session放在第一行中,因为在session开始之前,如果有HTML代码输出的话可能会有问题,就算是一个小空格放在第一行也在不被允许的,所以尽可能把session放在第一行,且在使用session之前要先调用session_start()函数。
17
华南理工大学广州学院本科毕业设计(论文)说明书
图4-3 添加文章页面
当用户填写完博客主题和文章内容后,单击“提交”按钮,系统将跳转到处理页check_diary进行处理。在处理页中,将传过来的文章标题、文章作者和文章内容等参数组成insert 语句,并最终保存到数据表中。如果添加信息成功,系统返回到本页,可继续执行添加操作;如果添加失败,则返回
到上一步。程序的关键代码如下:
header(\session_start();
//开启session支持
//包含数据库连接文件
//判断传值页面 //取得文章题目 //取得文章内容 //文章发表时间 //执行SQL语句
include \if($_POST['btn_tj']!=\$title=$_POST['txt_title']; $content=$_POST['file'];
$author = $_SESSION['username'];
$now=date(\ ('$title','$content','$now','$author')\
$result=mysql_query($sql); if($result){
$sql=\
echo \恭喜您,你的日志发表成
功!!!');window.location='article.php';\
18
第四章 系统详细设计
} else{ } } ?>
echo \对不起,添加操作失败!!!');window.history.back(-1);\
4.15 删除文章
对文章的删除处理,是后台管理的重要功能,当要对文章进行删除时,将跳转到处理页(del_file.php 和del_comment.php),完成删除操作。在删除文章的处理页中,删除文章的同时,也删除了该篇文章的相关的评论。处理页首先在文章列表(tb_article)中删除id 等于$file_id 的记录,如果没有可删除记录,则提示失败,并返回上一步;
如果删除成功,则转到评论列表(tb_filecomment)中,删除所有该篇文章的评论。删除文章页
删除处理的关键代码如下:
session_start(); //开启session支持
include \包含权限检查文件 include \包含数据库链接文件
$sql=\删除文章的delete语句 $result=mysql_query($sql,$link); //执行删除操作 if($result){
$sql1 = \删除相对应的文章评论 $rst1 = mysql_query($sql1,$link); //执行删除评论的操作 if($rst1)
echo \博客文章已被删除!');location='myfiles.php]';\else
echo \删除失败!');history.go(-1);\} else{
echo \博客文章删除操作失败!');history.go(-1);\} ?>
4.16 聊天室
聊天室主要是为了给用户提供一个在线聊天的平台,用户可以在聊天室中进多人的聊天。
在聊天室主显示区中轮动效果是通过
19