PHP课程设计报告个人博客管理系统前后台.doc
. .中北大学基于开源代码的web应用实训报告 学生XX: 学 号:学院:软件学院专业: 软件工程 题目:个人博客系统指导教师 2021年1月4日1. 设计任务概述包括系统总体框图及功能描述Blog 全名Web log,中文意思是“网络日志,后来缩写为Blog。Blog 就是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进展交流,再集丰富多彩的个性化展示于一体的综合性平台。本系统利用PHP动态网络开发技术,以MYSQL作为后台数据库,使用软件wamp、,以及配合eclipse和Dreamweaver网页开发工具,实现了个人博文发表和交流的平台个人博客系统。本博客和网上的其他博客一样,实现了一般博客所具有的功能,能够进展博文的发布、修改、删除,前台和后台的管理,浏览者可以进展浏览和评论。1.1系统总体框图个人博客系统 后台 前台游客模块管理员模块会员模块相册审核管理博文审核管理用户管理搜索相册管理评论管理博文管理搜索注册登录浏览博文评论评论审核管理要源代码的联系11234756011.2功能描述(一)前台任何游客都可以进展会员注册,对任何博文可以进展浏览和评论、浏览评论、浏览个人博客系统信息、搜索博文。注册会员成功后,使用自己的账号和密码登陆,登陆成功后可以在自己的博客中发表博文、修改和删除博文,同时可以浏览自己所上传的照片,并进展博文搜索。二后台后台主要是管理员对用户进展管理,以及对前台页面的博文进展修改及删除,对图片的修改及删除,对评论的修改及删除。其中用户管理包括对管理员、会员、游客的管理:1管理员:后台只能是管理员才能进入,其他用户不能进入。管理员在后台进展博文的修改及删除,评论的修改及删除,图片的修改及删除,用户的删除的管理。2会员:会员能浏览个人博客的博文和进展评论,发表、修改和删除博文、浏览和上传照片,搜索博文,查看个人博客系统信息,但是无权进入后台。3游客:游客的权限有浏览和评论博文,查看评论,搜索博文,查看个人博客系统信息,无权进入后台。2. 功能模块详细设计2.1 详细设计思想根据对个人博客系统的特点和应用的分析,可以得到本系统主要有如下功能:一前台1游客注册和会员登录游客注册:游客注册时要求填写用户的一些详细信息,包括用户名,密码,手机等信息存储到个人博客系统的数据库中。任何游客都可以注册,成功后便成为本博客系统的正式会员。系统承受这些信息并存储在数据库中。会员登录:主要用于验证博客系统用户信息的真实身份,以便对博客系统进展管理和维护。通过注册后的游客用个人注册的用户名,密码登录到博客系统,通过检测用户便被赋予对博客系统进展操作的对应权限。(2) 首页模块 主要包括首页信息的显示、博文分类、日历。(3) 博文模块 主要包括局部博文信息的显示、会员博文的修改和删除、博文分类、日历。(4) 图片模块 主要包括相册图片的显示、会员图片的上传、博文分类、日历。(5) 搜索模块 主要包括对博文的搜索、博文分类、日历。(6) 评论模块主要包括博文的评论。(7) 分类模块主要包括对博文的分类。(8) 日历模块主要包括日历的显示。 二后台1用户管理模块 主要包括对用户的账号、密码及管理。 2博文审核管理模块 主要包括对博文的浏览、修改和删除的管理。3图片审核管理模块 主要包括对照片的浏览、修改和删除的管理。(4) 评论审核管理模块 主要包括对评论容的浏览、修改和删除的管理。2.2 核心代码(一) Index.php 前台首页界面<?Php session_start ();if ($_GET 'cancle' = 1)unset ( $_SESSION 'username' );?><script type="text/javascript" src="ckeditor/ckeditor.js"></script><title>个人博客</title><meta name="keywords" content="" /><meta name="description" content="" />if (! isset ( $_SESSION 'username' )ho $_SESSION 'username'if (! isset ( $_SESSION 'username' )echo "个人"?>的博客</a><a>Have Fun</a></h2><font color="black">欢迎你<?Php echo $_SESSecho "<a href='login.html' style='font:black;'>登陆</a> <a>|</a> <a href='register.html'>注册</a>"elseecho "<a href='./index.php?cancle=1' style='font:black;'>注销</a>"?></font>?>><a href="index.php?content=1#menu" title="">主页</a></li><li<?phpif ($_GET 'content' = 2)echo "class='active'"?>><a href="index.php?content=2#menu" title="">博文</a></li><li<?phpif ($_GET 'content' = 3)echo "class='active'"?>><a href="index.php?content=3#menu" title="">相册</a></li><li<?phpif ($_GET 'content' = 5)echo "class='active'"?>><a href="index.php?content=5#menu" title="">搜索</a></li><li<?phpif ($_GET 'content' = 4)echo "class='active'"?>><a href="index.php?content=4#menu" title="">关于</a></li></ul><?Php if ($_GET 'content' = 1 or ! isset ( $_GET 'content' )require 'home.php'elseif ($_GET 'content' = 2)require 'blog.php'elseif ($_GET 'content' = 3)require 'photo.php'elseif ($_GET'content' = 4)require 'about.php'elseif ($_GET 'content' = 5)require 'message.php'?><li><?php"<a href='index.php?content=2&sort=1#content'>个人日记</a>"elseecho "个人日记"?>(<?php echo $sort0;?>)</li><li><?phpif (! isset ( $_GET 'sort' ) or $_GET 'sort' != 2)echo "<a href='index.php?content=2&sort=2#content'>技术原创</a>"Else echo "技术原创"?>(<?php echo $sort1;?>)</li><li><?phpif (! isset ( $_GET 'sort' ) or $_GET 'sort' != 3)echo "<a href='index.php?content=2&sort=3#content'>休闲搞笑</a>"elseecho "休闲搞笑"?>(<?php echo $sort2;?>)</li><?PHPdate_default_timezone_set ( 'PRC' );require "ap_kdr.php"$ap_kdr = new ap_kdr ();$ap_kdr->calendar ( $_GET 'month', $_GET 'year' );?></body></html>(二) Register.php 前台注册界面<?php require 'conn/conn.php'$pwd=($_POST'password'=$_POST'password1');$pattern='/13-8d9$/'$phone=preg_match($pattern, $_POST'phonenum');if($_POST'username'=""| $_POST'username'=null | $_POST'password'="" | $_POST'password'=null)echo "输入信息不正确 <a href='register.html'>返回</a>"exit;$result=mysql_query("select * from user where username='".$_POST'username'."'");if(mysql_num_rows($result) !='0')echo "用户名已存在<a href='register.html'>返回</a>"exit;if( $pwd && $phone)if(mysql_query("insert into user (username,password,phonenum) values ('".$_POST'username'."' , '".$_POST'password'."' , '".$_POST'phonenum'."')")echo " alert('注册成功,返回登陆页面!');echo "成功"elseechoalert('注册失败,请检查注册信息');elseecho"alert('注册失败,请检查注册信息');?>(三)login.php 前台登录界面<?phpsession_start();require 'conn/conn.php'if($_POST'username'=""| $_POST'username'=null | $_POST'password'="" | $_POST'password'=null)echo "没有此用户 <a href='login.html'>返回</a>"exit;$result=mysql_query("select * from user where username='$_POSTusername'");$row=mysql_fetch_row($result);$chkusername=($row1=$_POST'username');$chkpassword=($row2=$_POST'password');if($chkusername && $chkpassword)echo "登陆成功"$_SESSION"username"=$_POST"username"echo $_POST"username"."1111111"header("Location:index.php");elseecho "没有此用户 <a href='login.html'>返回</a>"(四) photo.php 前台图片管理界面<?phpif (! isset ( $_GET 'upload' ) if (isset ( $_SESSION 'username' ) echo echo "<div id='screen'>"echo "<div id='box'>" elseecho "请先<a href='login.html'>登录</a>!"?> <?Php if (isset ( $_SESSION 'username' ) $sql = "select * from photo where username='" . $_SESSION 'username' . "'"$result = mysql_query ( $sql );$total = mysql_num_rows ( $result );$num = 7;$page = new Page ( $total, $num );$sql = "select * from photo where username='" . $_SESSION 'username' . "' $page->limit"$result = mysql_query ( $sql );$src = "photo/" . $_SESSION 'username' . "/"$i = 1;while ( ($row = mysql_fetch_row ( $result ) && is_readable ( $isrc = $src . $row5 . '.jpg' ) && $i <= 7 ) echo "<img src=$isrc title='$row2'alt="$row3<br>$row4"> "$i +;?><?Php while ( $i > 0 ) echo "<a></a>"$i -;?>echo $page->fpage ();else require 'upload.php'?>五search.php 前台搜索界面<?phpinclude "conn/conn.php"include 'mCutStr.php'if ($_GET 'search'=1 && $_POST'search' != null) if (isset ( $_SESSION 'username' )$shuju_result = mysql_query ( "select * from article where author='" . $_SESSION 'username' . "' and title like '%" . $_POST 'search' . "%'" );else$shuju_result = mysql_query ( "select * from article where title like '%" . $_POST 'search' . "%'" );$total = mysql_num_rows ( $shuju_result );echo "为您找到".$total."条记录<br>"$num = 3;$page = new Page ( $total, $num );if (isset ( $_SESSION 'username' )$sql = "select * from article where author='" . $_SESSION 'username' . "' and title like '%" . $_POST 'search' . "%'" . " order by ID desc $page->limit"else$sql = "select * from article where title like '%" . $_POST 'search' . "%'" . " order by ID desc $page->limit"$result = mysql_query ( $sql );while ( $row = mysql_fetch_row ( $result ) ) ?><?Php echo $row 5;if (isset ( $_SESSION 'username' )echoEdit</a> | <a href='delcontent.php?content=2&id=$row0#content'>Delete</a>"?></small><a href="index.php?content=2&read=1&id=<?php echo $row0;?>#content"class="more">Read More</a> </p><?phpecho $page->fpage ();<?php elseif($_GET 'search'=1 && $_POST'search' = null)(六)index.php 后台首页界面<title>Skiyo 后台管理工作平台 by Jessica</title><link rel="stylesheet" type="text/css" href="css/style.css"/><script type="text/javascript" src="js/js.js"></script></head><body> <label>用户名: <input type="text" name="username" id="user" /> </label> <label>密码:<input type="password" name="password" id="pwd" /> (七) Photo.php 后台相册管理界面</head><body>管理人员根本信息列表</span></td><span class="STYLE10">序号<span class="STYLE10">照片预览<span class="STYLE10">相片标题</span><span class="STYLE10">上传日期</span><span class="STYLE10">上传者</span><span class="STYLE10">编辑<<?php$result = mysql_query ( "select * from photo order by id desc" );$user = mysql_query ("select * from user");$i = 1;while( $uname = mysql_fetch_row($user)while ( $row = mysql_fetch_row ( $result ) ) <?php echo "<a href='editphoto.php?id=$row0&uname=$uname1&name=$row5'>修改 (八)editphoto.php 后台图片的修改<?phpinclude './conn/conn.php'if (isset ( $_POST 'sub' ) $now=date('Y-m-d');$sql="UPDATE photo SET title='".$_POST'title'."',alt='".$_POST'alt'."' where id=".$_POST'id'$result = mysql_query($sql);if($result)echo "更新成功!"elseecho "更新失败!"elseif(!isset ( $_POST 'sub' )$result = mysql_query ( "select * from photo where id=" . $_GET 'id' );$row = mysql_fetch_row ( $result );?><form action="" method="post">标题:<input type="text" name='title' value='<?php echo $row2;?>'>描述:<input type="text" name='alt' value='<?php echo $row3;?>'><br><input type="submit" name='sub' value='提交'></form><?php ?九delete.php 后台图片的删除<?php if($_GET'sql'='photo')if( is_file( $_GET'src' ) )if( unlink($_GET'src') )echo ''elseecho '文件删除失败,权限不够'elseecho '不是有一个有效的文件'delete($_GET'sql', $_GET'id');function delete($sql, $id)include './conn/conn.php'$result = mysql_query("delete from ".$sql." where ID=".$id);if($result)echo $ans="删除成功 <a href='".$sql.".php'>返回</a>"else echo $ans="删除失败<a href='".$sql.".php'>返回</a>"return $ans;?>2.3 程序运行结果截屏1在网址栏输入localhost/newblog进入个人博客系统主页界面:(2) 游客点击“相册,得到如下登录提示界面:(3) 点击“搜索,游客可从所有作者发表的所有博文中进展搜索会员也可在自己的博客中对自己的博文进展搜索,情况与此类似,不再阐述,界面如下:4如游客在搜索界面输入“冬至,得到的搜索结果如下会员搜索与此类似,不再阐述:5点击界面右上角的“登录,可进入登录界面:6游客无账号,那么点击“注册进入注册界面,填写好相关信息并确认无误后注册成功:7会员在登录界面输入用户名和密码可进入自己的博客主页,如输入用户名为novameteor,密码为123456,点击“登录,进入novameteor的个人博客主页,界面如下:8会员点击“相册,可管理自己的相册,界面如下:9在相册展示栏里移动鼠标,相册展示栏会把箭头所指的那一图片放大,显示出动态效果:10会员点击“相册界面的“上传图片,可以上传图片,界面如下:11相册上传图片时,假设出现未输入图片名称、图片格式不正确等错误情况,那么出现以下提示页面:12在网址栏输入localhost/newblog/admin进入个人博客系统后台登录界面:13管理员在后台登录界面输入自己的用户名和密码即可进入后台管理界面,如输入用户名为novameteor,密码为123456的账户,点击“登录,那么进入后台管理界面。点击“图片管理,管理员可在此处查看所有图片的相关信息,并可进展修改删除操作:14管理员可在后台“图片管理中修改图片,如点击某个图片的修改,出现以下界面:15管理员可在后台“图片管理中删除图片,如点击某个图片的删除,出现以下对话框:3. 课程设计心得、存在问题及解决方法此次实训,我们的题目为个人博客系统。我们每三人一组,在商讨完需要实现的主要功能模块后,我们合理分工,大家共同努力。我主要负责前台照片的上传、前台首页的日历、后台照片的管理等。这次实训期间,我学到了不少关于制作网页方面的知识,而且能够设计出各种风格的网页,就拿这次实训来说,虽然界面不是很美观,而且还有许多的地方待改进,但是许多根本的知识已经熟练地掌握,像设计界面板块,字体样式,颜色,分页,后台管理的实现等等,但是要想真正的设计一个出类拔萃的系统,我还需要多努力,学习更多的相关知识。 实训中,我们遇到了很多问题,一些小的问题在自己检查后便可轻而易举的解决,比方sql语句的书写错误等,一些大问题那么困扰我很长时间,有的甚至需要请教同学及教师,总之,通过自己以及组员的共同努力,我们一一解决了编程过程中遇到的一切问题。通过实训,我才真正领略到“艰辛奋斗这一词的真正含义。我想说,测试确实有些辛苦,但苦中也有乐,同时也测试了我们整个团队的合作能力。一起工作可以让我们有说有笑,相互帮助,配合默契,我感觉和同学们之间的距离更加近了。团队需要个人,个人也离不开团队,必须发扬团结协作的精神,某个人的离群都可能导致整个工作的失败。实训中只有一个人知道原理是远远不够的,必须让每个人都知道,否那么一个人的错误,就有可能导致整个系统的设计的失败。团结协作也是是我们实训成功的一项非常重要的保证。而这次实训也正好锻炼我们这一点,这也是非常珍贵的。经过一个多月的实训,过程曲折可谓一语难尽。在合作期间,我们各尽其职,当遇到问题或不解时会立即讨论,仍有不解的我们会请教同学、教师,争取得到一个最正确的解决方法。这次课程实训我收获了成绩,收获了友谊,收获了快乐。总之,受益匪浅。教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。. .word.zl.