课程设计V课程设计设计说明书PHP留言本的制作学生姓名XX学号班级成绩指导教师数计学院2011年12月30日课程设计V 课程设计评阅书课程设计任务书2011—2012学年第一学期专业:网络工程082班学号:姓名:XX课程设计名称:课程设计V课程设计设计题目:PHP留言本的制作完成期限:自2011 年12 月19 日至2011 年12 月30 日共 2 周设计依据、要求及主要内容(可另加附页):现在的很多网站都提供一个供大家讨论热点问题的平台,那就是留言本。
本次课程设计依据《网页设计》课程所学的内容,结合现在网站发展的趋势和布局要求,利用Macromedia Dreamweaver 、Fireworks和Flash等网页设计工具,建立一个基于PHP的留言本。
具体要求及主要内容:1.利用PHP作为留言本的开发语言。
2.后台数据库可以采用ACCESS或者SQL SERVER。
3.要精美设计留言本的首页既index.asp页面,要求首页有代表留言本主题的Logo和Banner,留言本首页的导航菜单准确无误,无死连接。
4.利用CSS样式,美化论坛的字体和颜色。
5.各个版块内容清晰,便于用户浏览。
6.管理员可登陆后台管理留言本。
7.管理员可以随时修改和删除发布的留言。
指导教师(签字):教研室主任(签字):批准日期:年月日摘要本次课程设计设计了一个留言本系统,其开发包括后台数据库的建立和维护以及前台应用界面的开发两个方面,本系统是一个基于PHP的留言本后台数据库采用access软件建立,操作简单,界面清晰,易于为用户所接受。
关键词:留言本;PHP;SQL;目录1 课题描述 (1)2 需求分析 (2)3 概要设计 (4)4 详细设计 (5)5 程序编码 (7)6 程序调试与结果 (18)7 总结 (20)参考文献 (21)1 课题描述随着计算机的普及,人们可以更方便的借助计算机这一平台实现各种生活需求,此次的设计,就是为了设计一个留言本,其中包括了用户留言,回复,管理员对留言信息的管理等基本功能,其中管理员可以删除用户留言,或者对用户的留言进行回复等,这些功能都能方便的为大家所使用。
给人们创造一个愉快的交流平台。
2 需求分析2.1 开发背景在Internet飞速发展的今天,互联网已成为人们快速获取,发布和传递信息的重要渠道,他在人们生活中扮演着重要的角色,为了更好使人们进行沟通,交流,留言本已经是很重要的一个部分,因此我们有必要去开发一个留言本系统,来满足人们的需求。
2.2 可行性分析基于PHP的留言本,后台数据库采用SQL建立,操作简单,调试也相对简单,因此,技术上是可行的;现如今,计算机以及十分普遍,因此,使用计算机不仅价格低廉而且性能很高,即不需花费太多的人力物力,也可提高管理的效率,因此,经济上也是可行的;本次开发的系统,用户界面友好,简单易学,对系统的要求也不高,操作人员能对系统功能做到一目了然,用户也可轻松使用,因此,操作上也是可行的。
2.3数据流图图2.1 留言本数据流图2.4数据字典数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。
主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。
被动数据字典是指修改时必须手工更新其内容的数据字典。
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典的组成:1、数据项2、数据结构3、数据流4、数据存储5、处理过程(或其中的几部分)数据存储及数据流名字:游客信息描述:描述游客的基本信息定义:游客信息=昵称+留言编号+留言内容+管理员回复内容+留言时间位置:存储输出供查询名字:管理员信息描述:描述管理员的基本信息定义:管理员信息=昵称+密码位置:存储输出供查询3.1系统流程图图3.1 系统流程图根据留言本系统流程图可得到系统功能呢如下:(1)游客查看留言功能;在前台界面中,游客可任意查看留言(2)游客留言功能:在前台界面中,只要游客输入昵称就可留言,简单易操作。
(3)管理员管理功能:在前台模式下,管理员可输入密码进入后台管理界面,在其中可对游客的留言进行管理,其中包括删除游客留言和回复顾客留言。
4.1实体属性图图4.1.1 游客实体属性图图4.1.2 管理员实体属性图图4.1.3留言本E-R图4.2逻辑结构设计由以上属性图图可知,本系统的实体和属性的定义如下:游客信息表(昵称、留言编号、留言内容、管理员回复内容、留言时间)管理员表(密码、昵称)4.3物理结构设计(1)游客信息表表4.1游客信息表数据项名数据类型数据长度是否为空昵称char 10 NOT NULL留言编号Int 10 NOT NULL留言内容Char 10管理员回复内容Char 10留言时间Data 10(2)管理员表表4.2管理员表数据项名数据类型数据长度是否为空密码Int 10 NOT NULL昵称char 105 程序编码5.1提交留言内容程序<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无昵称文档</title><style type="text/css"><!--body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;}--></style><script language="javascript" type="text/javascript">function CheckForm(){if(.value.length==0){alert("昵称不能为空");.focus();return false;}if(document.form1.nr.value.length==0){alert("内容部能为空");document.form1.nr.focus();return false;}}</script></head><body><form id="form1" name="form1" method="post" action="tjsave.php" onsubmit="return CheckForm();"><table width="800" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#D1FAFA"><tr><td align="center" bgcolor="#D1FAFA"><table width="500" border="0" cellspacing="1" cellpadding="1"><tr><td width="177" align="right" bgcolor="#FFFFFF">昵称:</td><td width="616" align="left" bgcolor="#FFFFFF"><label><input type="text" name="name" id="name" /></label></td></tr><tr><td align="right" bgcolor="#FFFFFF">留言:</td><td align="left" bgcolor="#FFFFFF"><label><textarea name="nr" rows="5" cols="60" id="nr"></textarea></label></td></tr><tr><td align="right" bgcolor="#FFFFFF"> </td><td align="left" bgcolor="#FFFFFF"><label><input type="submit" name="button" id="button" value="提交" /></label></td></tr></table></td></tr></table></form></body></html>5.2数据库链接程序<?date_default_timezone_set('PRC');//设置时区//数据库连接$host='localhost'; //数据库地址$database='mybook'; //数据库名称$user='root'; //数据库帐户$pass='root'; //数据库密码$conn=@mysql_connect($host,$user,$pass) or die("数据库连接失败!!");mysql_query("set names 'gb2312'");//这就是指定数据库字符集,一般放在连接数据库后面就系了@mysql_select_db($database) or die("数据库不存在!");>5.3删除留言程序<?session_start();include("config.php");if(isset($_SESSION["name"])){$id=$_GET["id"];if(isset($id)){$sql=" delete from book where id='$id'";$myquery=mysql_query($sql);if($myquery){echo "<script>alert('删除成功!!');location='index.php';</script>";}else{echo "<script language='javascript'>";echo "alert('删除不成功!');";echo " location='index.php';";echo "</script>";}}else{echo "信息不存在";}}else{echo "不要做坏孩子哦?";}>5.4登录验证代码<?phpinclude("config.php");session_start();//启用session$name=$_POST["txtname"];$pwd=md5($_POST["pwd"]);$sql="select * from user where name='".$name."' and pwd ='".$pwd."'";$myquery=mysql_query($sql);if(mysql_num_rows($myquery)){$_SESSION["name"]=$name;//header("Location: index.php");}else{echo "<script language='javascript'>";echo "alert('登陆不成功!');";echo " location='index.php';";echo "</script>";}mysql_close();> %>5.5提交回复代码$name=$_POST["name"];$nr=$_POST["nr"];$ip = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORW ARDED_FOR"] : $_SERVER["REMOTE_ADDR"];$ip = ($ip) ? $ip : $_SERVER["REMOTE_ADDR"];if(isset($name)){$sql="insert into book (name,nr,ip) values ('$name','$nr','$ip')";if(mysql_query($sql)){echo "添加成功,请<a href='index.php'>返回</a>";}else{echo "添加不成功,请<a href='index.php'>返回</a>";}}else{// header("Location: index.php");echo "信息不正确,请<a href='index.php'>返回</a>";mysql_close();}>5.6首页设计代码1.index<?session_start();><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>真真留言板</title><style>body{backgound-image:url(./11.jpg);font-size:9pt;}</style></head><body><?php//启用sessioninclude("config.php");include("header.php");include("tj.php");include("counet.php");include("boot.php");></body></html>2.header<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无昵称文档</title><style type="text/css"><!--margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;}.STYLE1 {font-size: 40px;font-family: "楷体";color: #000000;}--></style><script language="javascript" type="text/javascript">function Check(){if(document.header.txtname.value.length==0){alert("用户名不能为空");document.header.txtname.focus();return false;}if(document.header.nr.value.length==0){alert("密码不能为空");document.header.pwd.focus();return false;}}</script></head><body><form id="header" name="header" method="post" action="check.php" onsubmit="return Check()"><table width="800" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td height="120" align="center" bgcolor="#29E829"><span class="STYLE1">真真留言板</span></td></tr><tr><td height="25" align="left"><?if(isset($_SESSION["name"]))echo $_SESSION["name"]." 已登录,<a href='exit.php'>注销</a>";}else{?><table width="800" border="0" cellspacing="0" cellpadding="0"><tr><td height="30" align="left" bgcolor="#D1FAFA">用户名:<label><input name="txtname" type="text" id="txtname" size="15" />密码:<input name="pwd" type="password" id="pwd" size="15" /><input type="submit" name="button" id="button" value="登录" /></label></td></tr></table><?}?></td></tr></table></form></body></html>3.tj<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无昵称文档</title><style type="text/css"><!--body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;}--></style><script language="javascript" type="text/javascript">function CheckForm(){if(.value.length==0){alert("昵称不能为空");.focus();return false;}if(document.form1.nr.value.length==0){alert("内容部能为空");document.form1.nr.focus();return false;}}</script></head><body><form id="form1" name="form1" method="post" action="tjsave.php" onsubmit="return CheckForm();"><table width="800" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#D1FAFA"><tr><td align="center" bgcolor="#D1FAFA"><table width="500" border="0" cellspacing="1" cellpadding="1"><tr><td width="177" align="right" bgcolor="#FFFFFF">昵称:</td><td width="616" align="left" bgcolor="#FFFFFF"><label><input type="text" name="name" id="name" /></label></td></tr><tr><td align="right" bgcolor="#FFFFFF">留言:</td><td align="left" bgcolor="#FFFFFF"><label><textarea name="nr" rows="5" cols="60" id="nr"></textarea></label></td></tr><tr><td align="right" bgcolor="#FFFFFF"> </td><td align="left" bgcolor="#FFFFFF"><label><input type="submit" name="button" id="button" value="提交" /></label></td></tr></table></td></tr></table></form></body></html>4.counet<table width="800" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td bgcolor="#D1FAFA"><table width="800" border="0" cellspacing="1" cellpadding="1"><?$page_size=5;//每页显示记录数$myquery=mysql_query("select * from book");$num_cnt=mysql_num_rows($myquery);//获取总的记录数$page_cnt=ceil($num_cnt/$page_size);//计算总的页数if(isset($_GET["p"])){$page=$_GET["p"];}else{$page=1;}$query_start=($page-1)*$page_size;//计算每页开始的记录号$sql="select * from book order by id desc limit $query_start,$page_size ";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){?><tr><td height="22" bgcolor="#FFFFFF">姓名:<?echo $row["name"];?></td><td width="599" rowspan="3" bgcolor="#FFFFFF"><? echo $row["nr"];?> <br /><?if(isset($_SESSION["name"])){echo " <a href='del.php?id=".$row["id"]."'>删除</a>";}?></td></tr><tr><td width="194" height="22" bgcolor="#FFFFFF">日期:<? echo date('Y-m-d',strtotime($row["date"])); ?></td></tr><tr><td height="20" bgcolor="#FFFFFF">ip:<? echo $row["ip"]; ?></td></tr><?}?></table></td></tr></table><table width="800" border="0" align="center" cellpadding="0" cellspacing="1" bordercolor="#D1FAFA"><tr><td height="25" align="right" bgcolor="#D1FAFA"> </td></tr><tr><td height="25" align="right" bgcolor="#D1FAFA">共有<? echo $num_cnt ;?> 记录| 每页显示<? echo $page_size ;?>记录| 分<? echo $page_cnt ;?> 页显示| 当前<? echo $page ;?>/<? echo $page_cnt;?>页 <?$shangpage=$page-1;$xiapage=$page+1;if($page==1){echo " [首页] | [上一页] |";}else{echo " [<a href ='index.php'>首页</a>] | [<a href='index.php?p=$shangpage'>上一页</a>] |";}if($page_cnt>$page){echo " [<a href='index.php?p=$xiapage'>下一页</a>] | [<a href ='index.php?p=$page_cnt'>末页</a>] ";}else{echo " [下一页] | [末页] ";}?> </td></tr></table>5.boot<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><style type="text/css"><!--body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;}--></style></head><body><table width="800" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td height="120" align="center" valign="middle" bgcolor="#29E829">版权所有:真真QQ:824783348 Email:*****************<br/><?$arr=getdate();echo $arr["year"]."年";echo $arr["mon"]."月";echo $arr["mday"]."日";?> </td></tr></table></body></html>6 程序调试与结果(1)前台界面图6.1 前台界面图(2)管理登录界面图6.2 管理登陆图(3)后台管理界面图6.3后台管理界面图7 总结课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题以及实际动手操作的能力。