一个简单的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
多文件上载系统完整版
Oct 09 PHP
PHP 和 MySQL 基础教程(四)
Oct 09 PHP
模仿OSO的论坛(三)
Oct 09 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
php抽奖小程序的实现代码
Jun 18 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
Mar 25 PHP
初识ThinkPHP控制器
Apr 07 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
Dec 23 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 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 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
thinkphp配置连接数据库技巧
2014/12/02 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
JavaScript 构造函数 面相对象学习必备知识
2010/06/09 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
angular2使用简单介绍
2016/03/01 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
Python numpy 点数组去重的实例
2018/04/18 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
python微信好友数据分析详解
2018/11/19 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
python aiohttp的使用详解
2019/06/20 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
教代会开幕词
2015/01/28 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
借钱欠条怎么写
2015/07/03 职场文书
给校长的建议书作文500字
2015/09/14 职场文书