PHP留言板小项目(大作业)-PHP代码类资源
留言板设计
制作者:20117760364张鹏
一,功能简介
留言板是一种电子便签管理系统,是用PHP及其他脚本语言编写的网络应用程序。在网络用户交流中起很大的作用,每个人都可以将他的资料和要求等信息保留在页面上,以供他人观看。留言板供其他网友给自己留言,或者临时存放自己的感受。留言操作简单,在您进入网站之后,进入任何一个留言板或社区均可以看到有输入框,输入自己的留言提交即可。
而我的这个留言板仅仅是简单的留言和管理员对留言板进行回复,删除管理的工具。该留言板简单但实用,而且具备了大多数留言板的基本功能。
二,开发环境
本系统利用AppServ及mysql中开发。采用了PHP,JavaScript,CSS等语言编写。
运行环境:windows。
三,设计思路
3.1逻辑结构设计
主页:浏览留言Index.php
发表留言
个人信息
管理员:删除留言dell.php
链接:删除留言
管理员:回复留言show.php
链接:确定
3.2系统功能
该留言板具有的主要功能如下:
1.可以按发言顺序,留言板自动排序;
2.有好简洁的管理界面,便于管理员维护留言板;
3.拥有给多的留言者的信息,包括主题,昵称,E-mail,网站,QQ等。
四,数据库设计
1.先新建一数据库(默认名为numb1)建立数据库及表格(lyb)
2.表属性定义如下:
`id` int(11) NOT NULL auto_increment,
`title` varchar(50) NOT NULL default '',
`name` varchar(20) default NULL,
`mail` varchar(50) default NULL,
`web` varchar(100) default NULL,
`qq` varchar(15) default NULL,
`ip` varchar(20) NOT NULL default '',
`tim` datetime default NULL,
`text` text NOT NULL,
`retxt` text,
`isre` char(2) NOT NULL default 'n',
`test` varchar(2) NOT NULL default 'n',
PRIMARY KEY (`id`)
3.留言板数据库连接
留言板中有很多数据,例如用户管理员登录时检测密码,进行查看和留 言时,都需要用到和数据库的连接所以应该将数据库的连接专门作为一个PHP文件,这样不仅方便,而且也增加了安全性。我的这个留言板中,就是以dbclass.php文件作为单独一个PHP文件连接数据库的。
五,关键代码
1.数据库连接(dbclass.php)
<?
class db{
var $dbhost="localhost";
var $dbuser="root";
var $password="123";
var $dbname="numb1";
function mysql($dbhost,$dbuser,$password,$dbname){
$this->dbhost=$dbhost;
$this->dbuser=$dbuser;
$this->password=$password;
$this->dbname=$dbname;
}
function mycon(){
@mysql_connect($this->dbhost,$this->dbuser,$this->password);
}
function selectdb(){
@mysql_select_db($this->db);
}
function createcon(){
mysql_connect($this->dbhost,$this->dbuser,$this->password);
mysql_select_db($this->dbname);
}
function fetch_array($sql){
$result=mysql_query($sql);
return mysql_fetch_array($result);
}
function query($sql){
return mysql_query($sql);
}
function loop_query($result){
return mysql_fetch_array($result);
}
function close() {
return mysql_close();
}
}
?>
留言板首页(index.php)
<?
session_start();
include('include/config.inc.php');
include('include/dbclass.php');
include('include/findex.php');
$admin=$_SESSION["admin"];
$page=$_GET["page"];
$db=new db;
$db->mysql($dbhost,$dbuser,$dbpassword,$dbname);
$db->createcon();
if($test=="n" || $admin){
$sql="select count(*) from lyb";
}else{
$sql="select count(*) from lyb where test='y'";
}
$array=$db->fetch_array($sql);
$count=$array[0];
if($page<2){$page=1;}
if(($count/$showrow) == floor($count/$showrow)){
$pcount=floor($count/$showrow);
}else{
$pcount=floor($count/$showrow)+1;
}
$start=($page-1)*$showrow;
if($test=="n" || $admin){
$sql="select id from lyb order by id desc limit $start,$showrow";
}else{
$sql="select id from lyb where test='y' order by id desc limit $start,$showrow";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>请您留言</title>
<style type="text/css">
<!--
body {
background-image: url(img/bg.gif);
margin-top: 0px;
margin-bottom: 5px;
}
.style1 {color: #FF0000}
.style2 {color: #FFFFFF}
td{font-size:13px;color:#585858}
th{font-size:15px;color:#585858}
a:link{text-decoration:none;color:#0000ff}
a:visited{text-decoration:none;color:#0000ff}
a:hover{text-decoration:underline;color:#ff0000}
.l {font-size:13px}
.l a:link{text-decoration:none;color:#0000ff}
.l a:visited{text-decoration:none;color:#0000ff}
.l a:hover{text-decoration:none;color:#ff0000}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
function check_form(theform)
{
if (theform.txt.value=="")
{
alert("您还没留下您的意见呢!");
theform.text.focus();
return false;
}
if (theform.title.value=="")
{
alert("请留下您意见的主题!");
theform.title.focus();
return false;
}
if (theform.name.value=="")
{
alert("请输入您的大名!");
theform.name.focus();
return false;
}
}
function checkall(check) {
var i = <? echo ($start+1);?>;
var theObj;
for(; i<=<? echo ($showrow+$start+1);?>; i++)
{
theObj = eval("form1.del" + i);
if (theObj != null)
theObj.checked = check;
}
}
function allcheck() {
if (document.form1.a.checked == true)
checkall(true);
else
checkall(false);
}
</script>
</head>
<body><form name="form1" method="post" action="dell.php">
<table width="780" border="0" align="center" cellspacing="0" bgcolor="#f8fff7">
<tr>
<td height="2"></td>
</tr>
<tr>
<td><img src="img/title.jpg" width="778" height="80"></td>
</tr>
<tr>
<td><hr></td>
</tr>
<tr>
<td class="l"> <a href="http://localhost:8888/php/index.php" target="_blank">首页</a> > <span class="style1">您的意见</span> </td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="1" bgcolor="#c1d1c1">
<tr>
<td bgcolor="#f8f8f8">
<table width="100%" border="0" cellspacing="0">
<tr>
<td width="41%" class="l"> 第<? echo $page;?>页 共<? echo $pcount;?>页 <? if($page>1){?>
<a href="index.php">首页</a> <a href="index.php?page=<? echo $page-1;?>">上页</a> <? } if($page<$pcount){?>
<a href="index.php?page=<? echo $page+1;?>">下页</a> <a href="index.php?page=<? echo $pcount;?>">尾页</a> <? }?></td>
<td width="59%" class="l"><div align="right">
<? if($admin){?><input name="page" type="hidden" id="page" value="<? echo $page;?>">
<input name="imageField" type="image" src="img/del1.jpg" width="76" height="21" border="0" onMouseOut="this.src='img/del1.jpg'" onMouseOver="this.src='img/del2.jpg'">
<? }else{if($wmassage=="n"){?><a href="send.php"><img src="img/send1.jpg" width="77" height="21" border="0" onMouseOut="this.src='img/send1.jpg'" onMouseOver="this.src='img/send2.jpg'"></a><? }?>
<a href="login.php"><img src="img/admin1.jpg" width="77" height="21" border="0" onMouseOut="this.src='img/admin1.jpg'" onMouseOver="this.src='img/admin2.jpg'"></a><? }?>
</div></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</table>
<table width="780" border="0" align="center" bgcolor="#EFF0E2" style="BORDER-LEFT: #4F7B0D 1px solid; BORDER-RIGHT: #4F7B0D 1px solid; BORDER-TOP: #4F7B0D 1px solid">
<tr bgcolor="#4F7B0D">
<th width="53" height="20"><span class="style2">
<? if($admin){echo "<input type=\"checkbox\" name=\"a\" id=\"a\" οnclick=\"return allcheck()\">";}else{echo "编号";}?>
</span></th>
<th width="336" bgcolor="#4F7B0D"><span class="style2">主题</span></th>
<th width="83"><span class="style2">留言者</span></th>
<th width="217"><span class="style2">留言时间</span></th>
<th width="69"><span class="style2">回复</span></th>
</tr>
</table>
<?
$i=1;
$result=$db->query($sql);
while($rows=$db->loop_query($result)){
$no=($i++)+($page-1)*$showrow;
show($rows[0],$db,$admin,$no);
}
?>
<table width="780" border="0" align="center" cellspacing="0" style="BORDER-TOP: #4F7B0D 1px solid">
<tr>
<td height="10"></td>
</tr>
<tr>
<td><table width="100%" border="0" align="center" cellspacing="1" bgcolor="#c1d1c1">
<tr>
<td bgcolor="#f8fff7" class="l"><div align="right">
<?
if($pcount<=5){
for($j=1;$j<$pcount+1;$j++){
if($j==$page){?><font color=#ff0000>第<? echo $page;?>页</font> <? }else{?><a href="index.php?page=<? echo $j;?>">第<? echo $j;?>页</a> <? }
}
}else if($page<4){
for($k=1;$k<$page+6;$k++){
if($k==$page){?><font color=#ff0000>第<? echo $k;?>页</font> <? }else{ ?><a href="index.php?page=<? echo $k;?>">第<? echo $k?>页</a> <? }
}
}else if(($pcount-$page)<5){
for($l=$pcount-6;$l<=$pcount;$l++){if($l==$page){ ?><font color="#FF0000">第<? echo $l;?>页</font> <? }else{ ?><a href="index.php?page=<? echo $l;?>">第<? echo $l;?>页</a> <? }}
}else{
for($m=$page-3;m<$page+3;$m++){if($m==$page){ ?><font color="#FF0000">第<? echo $m;?>页</font> <? }else{ ?><a href="index.php?page=<? echo $m;?>">第<? echo $m;?>页</a> <? }}
}?> 共<? echo $pcount;?>页 <? echo $count;?>条 </div></td>
</tr>
</table></td>
</tr>
</table></form>
<? if(!$admin){if($wmassage=="y"){?>
<form name="form2" method="post" action="act.php" onSubmit="return check_form(this)">
<table width="780" border="0" align="center" cellspacing="1" bgcolor="#4F7B0D">
<tr bgcolor="#EFF3E7">
<td colspan="2"><table width="100%" border="0" cellspacing="1">
<tr>
<th bgcolor="#4F7B0D"><span class="style2">填 写 留 言</span></th>
</tr>
</table></td>
</tr>
<tr bgcolor="#EFF3E7">
<td width="459" bgcolor="#EFF3E7"><div align="center">
<table width="100%" border="0">
<tr>
<td class="l"><div align="center">留言内容 <span class="style1">*</span></div></td>
</tr>
<tr>
<td><div align="center">
<textarea name="txt" cols="55" rows="8" id="txt" style="BORDER: #4F7B0D 1px solid; background: #f8fff7;color: #4F7B0D; overflow:auto;"></textarea>
</div></td>
</tr>
</table>
</div></td>
<td width="314" bgcolor="#EFF3E7"><table width="98%" border="0" align="center">
<tr>
<td class="l"><div align="right">主题:</div></td>
<td><input name="title" type="text" id="title" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;">
<span class="style1">*</span></td>
</tr>
<tr>
<td class="l"><div align="right">昵称:</div></td>
<td><input name="name" type="text" id="name" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;">
<span class="style1">*</span></td>
</tr>
<tr>
<td class="l"><div align="right">E-mail:</div></td>
<td><input name="mail" type="text" id="mail" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;"></td>
</tr>
<tr>
<td class="l"><div align="right">网站:</div></td>
<td><input name="web" type="text" id="web" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;"></td>
</tr>
<tr>
<td class="l"><div align="right">Q Q: </div></td>
<td><input name="qq" type="text" id="qq" style="BORDER: #4F7B0D 1px solid;color:#4F7B0D;background: #f8fff7;"></td>
</tr>
<tr>
<th colspan="2"><input name="imageField" type="image" src="img/ok1.jpg" width="69" height="20" border="0" onMouseOut="this.src='img/ok1.jpg'" onMouseOver="this.src='img/ok2.jpg'"> <a href="http://www.numb1.com"><img src="img/back1.jpg" width="69" height="20" border="0" onMouseOver="this.src='img/back2.jpg'" onMouseOut="this.src='img/back1.jpg'"></a></th>
</tr>
</table></td>
</tr>
</table>
</form>
<? }}?>
<table width="780" border="0" align="center" cellspacing="1" bgcolor="#4F7B0D">
<tr>
<td bgcolor="#639A10" class="l"><div align="center" class="style2">欢迎进入本站留言板 <a target="_blank"><font color="#ffffff">版权所有 © 2014-2015</font></a></div></td>
</tr>
</table>
</body>
</html>