一个简单的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 相关文章推荐
随机广告显示(PHP函数)
Oct 09 PHP
基于mysql的bbs设计(二)
Oct 09 PHP
文件系统基本操作类
Nov 23 PHP
php中的时间显示
Jan 18 PHP
php 全文搜索和替换的实现代码
Jul 29 PHP
PHP 一个比较完善的简单文件上传
Mar 25 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
PHPCMS忘记后台密码的解决办法
Oct 30 PHP
php 运算符与表达式详细介绍
Nov 30 PHP
Smarty模板变量与调节器实例详解
Jul 20 PHP
php模拟实现斗地主发牌
Apr 22 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与javascript的两种交互方式
2006/10/09 PHP
php算开始时间到过期时间的相隔的天数
2011/01/12 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
PHP实现合并discuz用户
2015/08/05 PHP
php 基础函数
2017/02/10 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
python实现简单点对点(p2p)聊天
2017/09/13 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
python编写弹球游戏的实现代码
2018/03/12 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
食品行业求职人的自我评价
2014/01/19 职场文书
小学新教师培训方案
2014/02/03 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
环境卫生标语
2015/08/03 职场文书