Web编程之留言板模块(PHP+MYSQL)

                                               留言板模块


一,功能描述:

      留言提交,留言回复查看,管理员身份认证
     包括:
             1,留言浏览页:index.php   按照留言先后顺序分页显示信息。
             2,留言处理页:sent.php   验证用户输入数据的完整性和合法性,保存用户信息以及留言。
             3,管理员登陆:login.php
             4,留言回复:reply.php    答复指定访客留言。
             5,留言删除:delete.php  删除指定访客留言

二,流程设计:

       
             index.php-------------->留言列表页面--------------->是否为管理员-------------->访客提交留言(或管理员管理留言)-------------》访问结束

三,数据库设计:

设计两个表,info 表用来存储访客留言和个人资料信息,reply表用来存储管理员回复信息。

info表结构如下:



reply表结构如下:

注意:字段里要用下划线,不然执行SQL语句的时候会出错误。info_id是info表中id的外键。


四:留言浏览(index.php)

数据库连接文件config.inc.php
代码如下

<?php
  session_start();
  define('DB_HOST','localhost');
  define('DB_USER','root');
  define('DB_PW','pwd');
  define('DB_NAME','sspku');
  define('DB_CHARSET','utf8');
  define('DB_PCONNECT',0);
  define('DB_DATABASE','mysql');
  $con=mysql_connect(DB_HOST,DB_USER,DB_PW) or die("数据库连接失败");
  mysql_query("set names utf8");
  mysql_select_db(DB_NAME);
?>



分页代码:
  
<?php
require('config.inc.php');
$pagesize=5;
if(isset($GET['page'])&&$GET['page']!='')
   {
    $page=$GET['page'];
    }
else
    {
    $page=0;
     }
$sql="select c1.*,c2.reply_time,c2.reply from info c1 left join reply c2 on (c1.id=c2.info_id) order by c1.id desc";
$numRecord=mysql_num_rows(mysql_query($sql));
$totalpage=ceil($numRecord/$pagesize);
$recordSql=$sql."limit ".$page*$pagesize.",".$pagesize;
$result=mysql_query($recordSql);
?>

五:留言提交( )


1,留言有效性的验证:验证用户名(限制输入10个字符,不能输入非法字符,不能为空),验证留言内容(留言内容不能空,内容不能过长)
    
创建一个才check.js的文件用于留言有效性的验证。
代码如下:

<script language="Javascript">
    function checkinput()
             {
                 var name = document.getelementById('name');
                 var post = document.getelementById('post');
                 nameValue = name.valuereplace(/\s+/g,"");
                 var SPECIAL_STR="~!%^&();\=-[]{}";
                 var nameflag=true;
                 for(i=0;i<nameValue.lengtht;i++)
                     {
                       if(SPECIAL_STR.indexOf(nameValue.charAt(i)) !=-1)
                          nameflag=false;
                     }
                 if(nameValue=='')
                     {
                       alert('请填写用户名');
                       return false;
                     }
                 if(nameValue.length>10)
                     {
                       alert("用户名称最多是个字符");
                       return false;
                     }
                 if(nameflag==false)
                     {
                         alert("用户名称含有非法字符");
                         return false;
                     }
                 if(post.value=="")
                     {
                       alert("用留言内容为空");
                       return false;
                     
                     }
                 if(post.value.length>400)
                      {
                         alert("留言内容过长");
                         return false;
                      }
              }
</script>

2,留言内容处理(sent.php):校验表单提交的信息,按照规则写入数据库。

代码如下:

<?php
header('content-type:text/html;charset=utf-8');
$name = $_POST['name'];
$content = $_POST['content'];
   if ($name=="" || strlen($name)>10)
      {
        echo <<<tem
        <script>
        alert("请输入正确的用户名");
        history.go(-1);
        </script>
        tem;
        exit();
      }
   if($content=="" || strlen($content>400))
      {
       echo <<<tem
       <script>
       alert("留言无内容或过长。");
       history.go(-1);
       </script>
       tem;
       exit();
      }
require('config.inc.php');
$content_time=time();
//留言信息插入info表
$insertsql="insert into info (name,content,content_time) values ('$name','$content','$content_time')";
if(mysql_query($insertsql))
   {
     echo <<<tem
     <script>
     alert("留言成功");
     location.href="index.php";
     </script>
      tem;
    }
else
   {
     echo <<<tem
     <script>
     alert("留言失败");
     location.href="index.php";
     </script>
     tem;
   }
?>


六,留言管理

 1,通过创建session全局变量的方式实现获得管理权限。

<?php
 session start();
 if($_POST['username']=='admin'&& $_POST['password']=='sspku')
     {
      $session['login']=true;
      echo <<<tem
      <script>
      alert('管理员登陆成功');
      location.href="index.php";
      </script>
      tem;
     exit();
      }
else
     {
    echo "<script> alert("登录失败");</script>";
      }

?>

2,留言回复(reply.php)。

<?php

session_start();
require('config.inc.php');
if(!$_SESSION['login'])
      {
    echo "<script> alert('没有登录就不能回复!');location.href=''index.php';</script>";
    exit();
      }

$info_id=$_POST['info_id'];
$reply=$_POST['reply'];
$time=time();
$insertsql="insert into reply (info_id,reply,reply_time) value ( '$info_id','$reply','$time')";
if(mysql_query($insertsql))
     {
    echo "<script> alert('回复成功');location.href='index.php';</script>";
    exit();
      }
else
     {
      echo "<script> alert('回复失败');history.go(-1);</script>";
      exit();
      }
?>

3,留言删除(delete.php)

<?php
session_start();
header('content-type:text/html;charset=utf8');
require('config.inc.php');
if(!$_SESSION['login'])
     {
    echo"<script>alert('权限不足');location.href='index.php'</script>";
    exit();
     }
if(isset($_GET['id'] && $_GET['id']!="")
   {
    $delsql1="delete  * from reply where info_id=".$_GET['id'];
    $delsql2="delete  * from info where id=".$_GET['id'];
    mysqlquery($delsql1);
    mysqlquery($delsql2);
    if(mysql_error()=="")
      {
       echo"<script>alert('删除成功');location.href='index.php'</script>" 
      }
   }

?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值