一个简单的PHP&MYSQL留言板源码


Posted in PHP onJuly 19, 2020

初学PHP,花了几晚上写了个留言板,请高手指正
p.s.我的空间不支持PHP,不能提供演示了T_T
数据库结构:(库名:lyb)

表一: admin
字段: id(int11)   name(varchvr)   password(varchvr)
表二: lo
字段: id(int11)   username(varchvr)  sex(varchvr)  qq(varchvr)  email(varchvr)  info(text)  ip(varchvr)  submit_time(datetime)

1 conn.php(连接数据库文件)

<?php 
mysql_connect("localhost","root","");//连接数据库 
mysql_select_db("lyb");//选择数据库 
?>

2 header.php(公用头部文件) 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>银子留言板 Version 1.0</title> 
</head> 
<link href="css.css" rel="stylesheet" type="text/css" /> 
<body> 
<?php session_start(); ?> 
<div id="head"> 
  <div id="head_l"> 
    <ul> 
      <li><a href="index.php">偶要看留言</a></li> 
      <li><a href="post.php">偶要发表</a></li> 
      <?php 
      //session_start();//DOFY同学指出本句前不能有任何输出内容,就此改正 
      if($_SESSION["key"]==1){//如果获取的SESSION为1则显示管理项 
      ?> 
      <li><a href="adminexit.php">退出管理</a></li> 
      <? 
      } 
      else 
      { 
      ?> 
      <li><a href="admin.php">偶要管理</a></li> 
      <?}?> 
    </ul> 
  </div> 
  <div id="head_r">银子留言板 Version 1.0</div> 
</div>

3 footer.php(公用底部文件)

<?php 
$counterFile="conter.xml"; 
function displayCounter($counterFile){ 
$fp = fopen($counterFile,"rw"); 
$num = fgets($fp,5); 
$num += 1; 
print "<div id=\"footer\">银子留言板 Version 1.0   您是第 "."$num"." 位无聊的银</div>"; 
exec("rm -rf $counterFile"); 
exec("echo $num > $counterFile"); 
} 
if(!file_exists($counterFile)){ 
exec("echo 0 > $counterFile"); 
} 
displayCounter($counterFile); 
?> 
</body> 
</html>

4 index.php(首页)

<?php 
require_once("conn.php"); 
require_once("header.php"); 
session_start(); 

//分页代码开始 
$pagesize = 10;//设置每页显示条数 
$rs = mysql_query("select count(*) from lo");//取得记录总数,计算总页数用 
$myrow = mysql_fetch_array($rs); 
$numrows = $myrow[0];//计算总记录 

$pages = intval($numrows/$pagesize); 
if($numrows%$pagesize)$pages++;//设置页数 
if(isset($_GET['page'])) 
  { 
    $page = intval($_GET['page']); 
  } 
  else 
  { 
    $page = 1;//设为第一页 
  } 
$offset = $pagesize*($page-1);//计算记录偏移量 
//分页代码结束 


$sql = "select id,username,sex,qq,email,info,ip,DATE_FORMAT(submit_time, '%Y年%m月%d日 %T' ) from lo order by id desc limit $offset,$pagesize";//用到了DATE-FORMAT格式化日期格式 
$result = mysql_query($sql); 
$num = mysql_num_rows($result); 

if($num>0){ 
  while($row = mysql_fetch_array($result)) 
  { 
  //echo print_r($row); 
    if($row[2]=="男")//这个使性别改成你想要的名称^_^ 
    { 
      $sex = "帅锅"; 
    } 
    else 
    { 
      $sex = "美女"; 
    } 


?> 

<div id="show"> 
  <p class="num">第 [<?= $row[0] ?>] 条留言<p> 
  <p class="unline">留言人:<span class="blue"><?= $row[1]?></span>  性别:<?= $sex ?>  留言时间:<?= $row[7] ?> <? if($row[3]) {?> <a href="http://wpa.qq.com/msgrd?V=1&Uin=<?= $row[3] ?>&Site=http://www.loai.cn&Menu=yes"><img src="img/qq.gif" alt="<?= $row[3]?>" /></a><? } ?><? if($row[4]){ ?> <a href="mailto:<?= $row[4] ?>"><img src="img/email.gif" alt="<?= $row[4]?>" /></a> <? }?><? if($_SESSION["key"]==1){ ?> IP:<?= $row[6] ?>  <a href="update.php?wuleying&id=<?= $row[0]?>">更改</a> <a href="delete.php?wuleying&id=<?= $row[0]?>">删除</a><?}?></a></p> 
  <p class="blue">留言内容:</p> 
  <div id="show_info"><?= nl2br(htmlspecialchars($row[5])) ?></div> 
</div> 
<?php 
  } 
} 
else 
  { 
    echo "<div id=\"show\">无数据......</div>"; 
  } 
?> 

<div id="show_page"> 
<p> 
<?php 
$first=1; 
$prev=$page-1; 
$next=$page+1; 
$last=$pages; 
if($page==1&&$pages>1) 
{ 
  echo "首页 | "; 
  echo "上一页 | "; 
  echo "<a href=\"index.php?page=".$next."\">下一页</a> | "; 
  echo "<a href=\"index.php?page=".$last."\">尾页</a> | "; 
} 
elseif($page>=1&&$page!=$pages&&$num>0) 
{ 
  echo "<a href=\"index.php?page=".$first."\">首页</a> | "; 
  echo "<a href=\"index.php?page=".$prev."\">上一页</a> | "; 
  echo "<a href=\"index.php?page=".$next."\">下一页</a> | "; 
  echo "<a href=\"index.php?page=".$last."\">尾页</a> | "; 
} 
elseif($page==$pages&&$page!=1) 
{ 
  echo "<a href=\"index.php?page=".$first."\">首页</a> | "; 
  echo "<a href=\"index.php?page=".$prev."\">上一页</a> | "; 
  echo "下一页 | "; 
  echo "尾页 | "; 
} 
elseif($page==$pages) 
{ 
  echo "首页 | "; 
  echo "上一页 | "; 
  echo "下一页 | "; 
  echo "尾页 | ";   
} 
else 
{ 
  echo "首页 | "; 
  echo "上一页 | "; 
  echo "下一页 | "; 
  echo "尾页 | "; 
} 
?> 
共 <span><?= $pages ?></span> 页 | 当前第 <span><?= $page ?></span> 页 | 共 <span><?=$numrows ?></span> 条留言</p> 
</div> 


<?php 
mysql_close(); 
require_once("footer.php"); 
?>

5 post.php(提交留言页面)

<? 
require_once("header.php"); 
?> 
<div id="input"> 
<form method="post" action="input.php" name="form1"> 
  <h1>提交留言</h1> 
  <p>姓名 :<input type="text" name="name" size="20" class="y" /> </p> 
  <p>性别 :<input name="sex" type="radio" value="男" checked/> 帅锅 <input type="radio" name="sex" value="女"/> 美女</p> 
  <p>Q Q :<input type="text" name="qq" class="y" /> (可选填)</p> 
  <p>Email:<input type="text" name="email" class="y" /> (可选填)</p> 
  <p>留言内容:</p> 
  <p><textarea name="info" rows="5" cols="40"></textarea></p> 
  <p class="cen"> 
    <input type="submit" value="偶填好了" /> 
    <input type="reset" value="偶要重写"> 
  </p> 
  <p class="cen1">银子留言板 Version 1.0</p> 
</form> 
</div> 
</body> 
</html>

6 input.php(插入留言)

<?php 
require_once("conn.php"); 


$username = $_POST['name']; 
$sex = $_POST['sex']; 
$qq = $_POST['qq']; 
$email = $_POST['email']; 
$info = $_POST['info']; 

if (strrpos($username,"<")!==false || strrpos($username,">")!==false||strrpos($username,"@")!==false||strrpos($username,"\"")!==false||strrpos($username,"'")!==false||strrpos($username,"_")!==false) 
{ 
  echo "<script>alert('名称不能有特殊字符!');location.href='post.php';</script>"; 
  exit(); 
} 

if (!ereg("^[0-9]{0,}$",$qq))//用正则检查QQ格式 
{ 
  echo "<script>alert('OICQ信息有错误!必须是数字!');location.href='post.php';</script>"; 
  exit(); 
} 

if($email) 
{//如果填写了邮箱就用正则检查邮箱格式 
  if (!ereg("^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$",$email)) 
  { 
    echo "<script>alert('email格式不正确!');location.href='post.php';</script>"; 
    exit(); 
  } 
} 

if(!$username) 
{ 
  echo "<script>alert('名称不能为空哦!');location.href='post.php';</script>"; 
  exit(); 
} 
elseif(!$info) 
{ 
  echo "<script>alert('留言不能为空哦!');location.href='post.php';</script>"; 
  exit(); 
} 
else 
{ 
  $ip = getenv('REMOTE_ADDR');//获取客户端IP地址 

  $sql = "insert into lo (username,sex,qq,email,info,ip,submit_time) values ('$username','$sex','$qq','$email','$info','$ip',NOW())"; 

  $result = mysql_query($sql); 

  mysql_close(); 

  echo "<script>alert('提交成功!返回首页');location.href='index.php';</script>"; 
} 
?>

7 update.php(修改留言页)

<?php 
session_start(); 
require_once('conn.php'); 
require_once('header.php'); 


if($_SESSION["key"]==1) 
{ 
$id = $_GET['id']; 
$sql = "select * from lo where id= ".$id; 
$result = mysql_query($sql); 
$row = mysql_fetch_array($result); 

?> 

<div id="update"> 
  <form action="updatepost.php?wuleying&id=<?= $row[0] ?>" method="post"> 
    <h1>修改留言</h1> 
    <p>姓名:<input type="text" value="<?= $row[1]?>" name="name" class="y"></input></p> 
    <p>留言:</p> 
    <p><textarea name="info" rows="5" cols="35"><?= $row[5] ?></textarea></p> 
    <p class="cen"><input type="submit" value="偶要修改" /></p> 
    <p class="cen1">银子留言板 Version 1.0</p> 
  </form> 
<div>
<?php 
} 
else 
{ 
header('location:index.php'); 
} 
?>

8 updatepost(修改提交页)

<?php 
require_once('conn.php'); 

$username = $_POST['name']; 
$info = $_POST['info']; 
$id = $_GET['id']; 
//echo $id; 

$sql = "update lo set username= '".$username."',info='".$info."' where id=".$id; 
mysql_query($sql); 

echo "<script>alert('修改成功!');location.href='index.php';</script>"; 
?>

9 delete.php(删除留言页)

<?php 
session_start(); 
require_once('conn.php'); 

$id=$_GET['id']; 

if($_SESSION["key"]==1) 
{ 
$sql = "delete from lo where id=".$id; 
mysql_query($sql); 
echo "<script>location.href='index.php'</script>"; 
} 
else 
{ 
header('location:index.php'); 
} 
?>

10 admin.php(管理登录页)

<?php 
require_once('conn.php'); 
require_once('header.php'); 
?> 

<div id="admin"> 
  <form method="post" action="adminpost.php"> 
  <h1>管理员登录</h1> 
    <p>姓名 : <input type="text" name="name" size="20" class="y" /> </p> 
    <p>密码 : <input type="password" name="password" size="20" class="y" /> </p> 
    <p class="cen"><input type="submit" value="管理员登录" /></p> 
    <p class="cen1">银子留言板 Version 1.0</p> 
  </form> 
</div>

11 adminpost.php(管理验证页)

<?php 
session_start(); 
require_once('conn.php'); 

$name = $_POST['name']; 
$password = $_POST['password']; 

$sql = "select * from admin where name='".$name."'"; 
$result = mysql_query($sql); 
$num = mysql_num_rows($result); 

if (strrpos($name,"<")!==false || strrpos($name,">")!==false||strrpos($name,"@")!==false||strrpos($name,"\"")!==false||strrpos($name,"'")!==false||strrpos($name,"_")!==false) 
{ 
  echo "<script>alert('不能有特殊字符!');location.href='admin.php';</script>"; 
} 

if($num) 
{//如果用户存在,就检查密码是否正确 
  $rs = mysql_fetch_array($result); 
  if($rs[2]!=$password) 
  { 
    echo "<script>alert('密码不正确,请确认后输入!');location.href='admin.php';</script>"; 
  } 
  else 
  {//用户名,密码都正确,注册SESSION变量,然后跳转到首页 
    $_SESSION["key"]=1; 
    echo "<script>alert('登录成功!');location.href='index.php';</script>"; 
  } 
} 
else 
{//如果没有这个用户 
  echo "<script>alert('没有这个用户,请确认后输入!');location.href='admin.php';</script>"; 
} 
?>

12 adminexit.php(退出管理页)

<?php 
session_start(); 
$_SESSION["key"] = 0;//使SESSION不为1,0为游客,1为管理员 

header('location:index.php'); 
?>

只是些基本的东东,像MD5加密,UBB,表情图片,添加管理员账号,回复留言(-_!!)等我都没加上去,有兴趣的同学可以完善下,不足的地方请指出^_^

管理员账号:wuleying  密码:123456
wuleying_gbook.rar

PHP 相关文章推荐
一个很方便的 XML 类!!原创的噢
Oct 09 PHP
剖析 PHP 中的输出缓冲
Dec 21 PHP
用PHP的ob_start() 控制您的浏览器cache
Aug 03 PHP
php UTF8 文件的签名问题
Oct 30 PHP
php二分查找二种实现示例
Mar 12 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
May 12 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
Dec 19 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
Aug 14 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 PHP
利用PHP和AJAX创建RSS聚合器的代码
Mar 13 #PHP
手把手教你使用DedeCms的采集的图文教程
Mar 11 #PHP
PHP中的CMS的涵义
Mar 11 #PHP
dedecms 制作模板中使用的全局标记图文教程
Mar 11 #PHP
DedeCms模板安装/制作概述
Mar 11 #PHP
织梦模板标记简介
Mar 11 #PHP
php桌面中心(四) 数据显示
Mar 11 #PHP
You might like
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
Vue分页组件实例代码
2017/04/17 Javascript
node跨域请求方法小结
2017/08/25 Javascript
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
微信小程序云开发之使用云数据库
2019/05/17 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
如何写出高性能的JSP和Servlet
2013/01/22 面试题
.net C#面试题
2012/08/28 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
英语辞职信范文
2015/02/28 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
首次购房证明
2015/06/19 职场文书
运动会入场词
2015/07/18 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书