一个简单的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 飞信好友免费短信API接口开源版
Jul 22 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
May 15 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
Laravel 5框架学习之表单
Apr 08 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
PHP实现网站访问量计数器
Oct 27 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
jquery自动填充勾选框即把勾选框打上true
2014/03/24 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
AngularJS日程表案例详解
2017/08/15 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
python共享引用(多个变量引用)示例代码
2013/12/04 Python
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
Python实现将xml导入至excel
2015/11/20 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
Python数学形态学实例分析
2019/09/06 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
公司经理任命书
2014/06/05 职场文书
幸福家庭标语
2014/06/27 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang