PHP+MySQL实现留言板功能(三)完整版

由于前段时间过于忙碌,加上小编有重装了电脑系统,一直没有去复现这个功能,后面复现过程中,代码做了一些调整。今天我将完整版的代码和sql文件代码整理出来,供各位学习参考。

1.数据库SQL文件

index.php

<html>
<head>
<title>登陆</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="./css/index1.css">
<style>
body{height:100%;}
</style>
</head>
<body style="background: url(./images/timg7.jpg);">
<div class="index_01"> 
<table style="width: 100%;height:100%;" >
  <tr>
    <td align="center" >
      <table align="center" width=350 height=230; class="index_table" >  
       <form method ="POST" action = "doloadling.php" name="frmLogin"> 
     <tr align="center" style="font-size:25px;"> 
           <td colspan="2" style="font-size:35px;">用户登陆</td>
     </tr>
       <tr>  
           <td align="center" style="font-size:25px;">用户名</td>  
           <td><input type="name" maxlength="16" name="uid" placeholder="请输入账号" style="width:180px;font-size:20px;border-radius: 8px; "></td>  
       </tr>  
       <tr>  
           <td align="center" style="font-size:25px;">密   码</td>  
           <td><input name="password" type="password" maxlength="16" placeholder="请输入密码" style="width:180px;font-size:20px;border-radius: 8px; "></td>
       </tr>
       <tr align="center"> 
           <td colspan="2">
           <input type="submit" name="denglu" value="登陆" class="btn">
           <input type="reset" name="rs" value="重置" class="btn">  
           <input type="button" name="zu" value="注册" onclick="window.location.href='register.php'" class="btn"/>  
           </td>  
       </tr> 
     </form>
     </table>
    </td>
  </tr>
</table> 
</div>
</body>
</html> 

doloadling.php

<?php
require_once "connet.php";
require_once 'mysqlconfig.php';
$id=$_POST['uid'];
session_start();
$_SESSION["uid"]=$id;
$password=$_POST['password'];
$ma1=new DB();
   $link=$ma1->connect();
   $sql = "select * from tbl_ms where username='$id' and password='$password'";  
   $res = $ma1->CheckUser($link,$sql);
   if($res){
        header("Location:add.php");
   };
   if(!$res){
        echo "<script>alert('登录失败,账号或密码错误');location='index.php';</script>";
   };
?>

register.php

<html>
<head>
<title>注册</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="./css/index1.css">
<style>
body{height:100%;}
</style>
</head>
<body style="background: url(./images/timg7.jpg)">
<div class="index_01" > 
<table style="width: 100%;height:100%;" >
  <tr>
    <td align="center" >
      <form action="doregister.php " name="dl" method="post">
      <table  align="center" width=350 height=230; style="font-family:宋体;font-size:25px;">
      <tr align="center"> 
          <td colspan="2" style="font-size:35px;">注册用户</td>
      </tr>
      <tr>
          <td align="center">用户名</td>
          <td>
          <input type="name" maxlength="20" name="id" placeholder="手机号/邮箱" style="width:180px;font-size:20px;border-radius: 8px; ">
          </td>
      </tr>
      <tr>
          <td align="center">密   码</td>
          <td >
          <input name="password" type="password" maxlength="16" placeholder="请输入密码" style="width:180px;font-size:20px;border-radius: 8px; ">
      </td>
      </tr>
      <tr>
          <td align="center">Again</td>
          <td>
          <input name="confirmPassword" type="password" maxlength="16" placeholder="请再次输入密码" style="width:180px;font-size:20px;border-radius: 8px; ">
          </td>
      </tr>
      <tr>
        <td colspan="2" align="center">
        <input type="button" name='zu' value='登陆' onclick="location.href='index.php'" style="font-size:17px;border-radius: 12px;" class="btn"/>
        <input type="reset" name="zu" value="重置" style="font-size:17px;border-radius: 12px;" class="btn"> 
        <input type="submit" name="zu" value="注册" style="font-size:17px;border-radius:12px;" class="btn"/>
        </td>
      </tr>
   </table>
   </form>
    </td>
  </tr>
</table>
</div>
</body>
<html>

doregister.php

<?php
require_once "connet.php";
require_once 'mysqlconfig.php';
$ma1=new DB();
$link=$ma1->connect();
$id=$_POST['id'];
$password=$_POST['password'];
$confirmPassword=$_POST['confirmPassword'];
if($password!=$confirmPassword){
	echo "<script>alert('输入的密码和确认的密码不相等');location='register.php';</script>";;
}
$alt="select * from tbl_ms where username='$id'";
$res = $ma1->print1($link,$alt);
if($id!=null&&$password!=null){
   $ma=new DB();
   $link=$ma->connect();
   $sql = "insert into tbl_ms (username,password) values('$id','$password')"; 
   for ($i=0; $i < count($res); $i++) {
	   if($id!=$res[$i]['username']){
	   $res = $ma->insert($link,$sql);
	   };
       if($id==$res[$i]['username']){
           echo "<script>alert('注册失败,该账号已被注册!');location='register.php';</script>";
       }
   }
}
else{
    echo "<script>alert('注册失败,请输入账号和密码');location='register.php';</script>";
}
?>

add.php

<?php
    header('Content-type: text/html; charset=UTF8');
    ?>
	<html>  
    <head>
	<link rel="stylesheet" type="text/css" href="./css/index1.css">
    <title>我的留言板.添加留言</title>  
    </head>  
    <body background="./images/7.jpg" style="background-size:cover;" >  
    <center>  
    <h2>我的留言板</h2> 
    <input type = "button" value = "添加留言" onclick="location.href='add.php'" class="button"/>
    <input type = "button" value = "查看留言" onclick="location.href='show.php'" class="button"/>
	<input type = "button" value = "退出登陆" onclick="location.href='index.php'" class="button"/>
    <hr width = "70%"> 
    </center>
	<div class="k1">
    <form action = "doAdd.php" method = "post">  
    <h1>Add A Message
    <span>What's New To Share With You。</span>
    </h1>
    <label>
    <span>Your Name :</span>
    <input type="text" name="author" placeholder="Your Full Name" />
    </label>

    <label>
    <span>Title :</span>
    <input type="text" name="title" placeholder="Please input title" />
    </label>

    <label>
    <span>Message :</span>
    <textarea name="content" placeholder="Your Message to Us"></textarea>
    </label>
    <div style="margin-left:125px">
    <input type="submit" value="提交" class="submit">
    <input type = "reset" value = "重置" class="reset">
    </div>
	</div>
    </form>
    </body>  
    </html>  

doAdd.php

    
    <?php
	session_start();
    $id=$_SESSION["uid"];
    $title = $_POST["title"];  
    $author = $_POST["author"];
	$_SESSION["authorl"]=$author;
    $content = $_POST["content"];  
    $ip = $_SERVER["REMOTE_ADDR"];
	require_once "connet.php";
    require_once 'mysqlconfig.php';
    $ma1=new DB();
    $link=$ma1->connect();
    $sql = "insert into tbl_ms1 (user,title,author,ip,liuyan,time) values('$id','$title','$author','$ip','$content',now())";
    if($title!=null){
		if($author!=null){
		    $res = $ma1->insertl($link,$sql);
		};
	    if($author==null){
		    echo "<script>alert('请输入留言者!');location='add.php';</script>";
		};
	};
	if($title==null){
	    echo "<script>alert('请输入留言标题!');location='add.php';</script>";
	};
    ?>

show.php

    <?php
    header('Content-type: text/html; charset=UTF8');
    ?>
	<html>  
    <head>  
    <title>我的留言板.查看留言</title> 
	<link rel="stylesheet" type="text/css" href="./css/index1.css">
    </head>  
    <body background="./images/7.jpg" style="background-size:cover;background-attachment: fixed;" >  
    <center>  
     <h2>我的留言板</h2>  
    <input type = "button" value = "添加留言" onclick="location.href='add.php'" class="button"/>
    <input type = "button" value = "查看留言" onclick="location.href='show.php'" class="button"/>
	<input type = "button" value = "退出登陆" onclick="location.href='index.php';logout()" class="button"/>
    <hr width = "70%"> 
	</center>
       <?php  
        //数据库连接  
        $con = @mysqli_connect("127.0.0.1","root","1728aceAB7","my1");  
        if(!$con){  
            die("数据库连接错误".mysqli_connect_error());  
        }  
        mysqli_query($con,"set names 'utf8'");  
        //显示每页的留言数  
        $pagesize = 8;  
        //确定页数p参数  
        @$p = $_GET['p']?$_GET['p']:1;  
        //数据指针  
        $offset = ($p-1)*$pagesize;  
        //查询本页现实的数据 
		session_start();
        $id=$_SESSION["uid"];
        $query_sql = "select * from tbl_ms1 where user= '$id' order by user desc limit $offset,$pagesize";  
        # echo $query_sql;  
        $result = mysqli_query($con,$query_sql);  
		/*if (!$result) {
			printf("Error: %s\n", mysqli_error($con));
			exit();
		}*/
        //循环输出  
		echo "<div style='margin-top:55px'>";
		while($res = mysqli_fetch_array($result)){
			echo "<div class='k'>";
			echo "<div class='ds-post-main'>";
			echo "<div class='ds-comment-body'>
			<span>{$res['author']}  于  {$res['time']}  给我留言</span>
			<span style='float:right'><a href = 'del.php?id=".$res['user']."'><input type='submit' class='button1' value='删除'></input></a></span>
			<p>留言主题 : {$res['title']}   留言地址 : <span>{$res['ip']}</span></p>
            <hr width=450px> 
			<p>{$res['liuyan']}</p></div><br>";
			echo "</div>";
			echo "</div>";
        }
		echo "</div>";
        //分页代码  
        //计算留言总数  
        $count_result = mysqli_query($con,"select count(*) as count from tbl_ms1 where user= '$id'");  
        $count_array = mysqli_fetch_array($count_result);  
      
        //计算总的页数  
        $pagenum = ceil($count_array['count']/$pagesize);  
        //echo '共',$count_array['count'],'条留言';  
		//echo '共',$pagenum,'页';
        echo "<center>";
        echo "<div style='display: inline-block;margin-right: 15px;margin-left:15px;'>",'共',$count_array['count'],'条留言','</div>';  
		echo "<div style='display: inline-block;margin-right: 15px;margin-left:15px;'>",'共',$pagenum,'页','</div>';  
      
        //循环输出个页数及链接  
        if($pagenum>1){  
            for($i = 1;$i<=$pagenum;$i++){  
                if($i == $p){  
                    echo "<div style='background:#e8ffc4;width:25px;display: inline-block;margin-right: 10px;'>",$i,"</div>";
                      
                }else{  
                    //echo  '<a href="show.php?p=',$i,'">',$i,'</a>';
					echo '<a href="show.php?p=',$i,'">',"<div style='width:25px;display: inline-block;margin-right: 10px;background:#FF9D6F'>",$i,'</div>','</a>';
                }
            }
	echo "<div style='display: inline-block;margin-right: 10px;'>",'当前在 ',$p, ' 页',"</center></div>";
        }
		echo "<br>";
		echo "<br>";
		echo "<br>";
		echo "</div>";
    ?>
	<script type="text/javascript"> 
      function logout(){ 
        <% 
          session.invalidate(); //运用invalidate()比较好,退出时使session失效
        %> 
      }
    </script>
    </body>  
    </html> 

del.php

    <?php
    header("content-type:text/html;charset=utf-8");
	session_start();
    require_once "connet.php";
    require_once 'mysqlconfig.php';
    $ma1=new DB();
    $link=$ma1->connect();
	$id = $_GET['id'];
	//session_start();
    //$id=$_SESSION["uid"];
    if($link){
       $sql="delete from tbl_ms1 where id =$id ";
	   //echo "$sql";
       $que=mysqli_query($link,$sql);
		if($que){
		   echo "<script>alert('删除成功,返回首页');location='show.php';</script>";
		}else{
		   echo "<script>alert('删除失败');location='show.php'</script>";
		   exit;
		}
      }
    ?>

connet.php

扫描二维码关注公众号,回复: 4219470 查看本文章
<?php  
    define('DB_HOST', 'localhost');  
    define('DB_USER', 'root');  
    define('DB_PWD', '17Bdda7');  //我数据库密码
    define('DB_CHARSET', 'UTF8');  
    define('DB_DBNAME', 'my1');  
?>

mysqlconfig.php

<?php
   class DB{
   	function connect(){
           @$link = mysqli_connect(DB_HOST,DB_USER,DB_PWD);//连接数据库
           mysqli_set_charset($link,DB_CHARSET);//设置数据库字体格式
           mysqli_select_db($link,DB_DBNAME) or die('数据库打开失败');//选择数据库
          if(mysqli_connect_errno())
        {
        die('数据库连接失败 : '.mysqli_connect_errno());
        }
        return $link;
    }
    function insert($link,$sql){
      if (mysqli_query($link, $sql)) { 
          echo "<script language='javascript'> alert('注册成功!');location='index.php'; </script>"; 
      } else { 
          echo "Error insert data: " . $link->error; 
      }

     }
    function CheckUser($link,$sql){
      $result = mysqli_query($link,$sql);
      $row = mysqli_num_rows($result);
      if($row != 0){
        return true;
        }
	  else{
        return false;
        }
     }
    function insertl($link,$sql){
       if (mysqli_query($link, $sql)) { 
          echo "<script language='javascript'> alert('留言成功!');location='show.php'; </script>"; 
       } else { 
          echo "Error insert data: " . $link->error; 
      }

     }
	 function print1($link,$sql){
        $result = mysqli_query($link,$sql);
        $data = array();
        while ($row = mysqli_fetch_array($result)) {
          $data[] = $row;
        }
        if ($data) {
          return $data;
        } else {
          return false;
        }
      }
     
}
?>

sql文件

/*
Navicat MySQL Data Transfer

Source Server         : MySQL
Source Server Version : 50617
Source Host           : localhost:3306
Source Database       : my1

Target Server Type    : MYSQL
Target Server Version : 50617
File Encoding         : 65001

Date: 2018-11-06 22:53:31
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for tbl_ms
-- ----------------------------
DROP TABLE IF EXISTS `tbl_ms`;
CREATE TABLE `tbl_ms` (
  `username` varchar(25) NOT NULL,
  `password` varchar(25) NOT NULL,
  PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for tbl_ms1
-- ----------------------------
DROP TABLE IF EXISTS `tbl_ms1`;
CREATE TABLE `tbl_ms1` (
  `user` varchar(25) NOT NULL,
  `title` varchar(225) DEFAULT NULL,
  `author` varchar(25) DEFAULT NULL,
  `ip` varchar(25) DEFAULT NULL,
  `liuyan` varchar(225) DEFAULT NULL,
  `time` time DEFAULT NULL,
  KEY `user` (`user`),
  CONSTRAINT `tbl_ms1_ibfk_1` FOREIGN KEY (`user`) REFERENCES `tbl_ms` (`username`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

css文件

index1.css

.btn {
    color: white;
    background-color: #2579d1;
    padding: 0px 1em;
    height: 35px;
	font-size:17px;
	border-radius: 12px;
   /* border: 0px solid black;*/
}

.btn:hover {
    background-color: #00ff00;
}
.index_01{
   height: 400px;width: 400px;
   margin:auto; 
   position: absolute;top: 0;
   left: 0;right: 0;bottom: 0;
   border-radius: 50%; 
   background-color: rgba(50,150,550,0.5);
   font-family:宋体;
}
div.k1 {
	margin-top:55px;
    margin-left:auto;
    margin-right:auto;
    max-width: 500px;
    background: #D2E9FF;
    padding: 20px 20px 20px 20px;
    color: #666;
}
h1 {
    font: 24px "Trebuchet MS", Arial, Helvetica, sans-serif;
    padding: 10px 10px 10px 20px;
    display: block;
    background: #C0E1FF;
    border-bottom: 1px solid #B8DDFF;
    margin: -20px -20px 15px;
    }
h1>span {
    display: block;
    font-size: 14px;
}
label {
    display: block;
    margin: 0px 0px 5px;
}
label>span {
    float: left;
    width: 22%;
    text-align: right;
    padding-right: 15px;
    margin-top: 10px;
    font-weight: bold;
}
input[type="text"],textarea,select {
    color: #888;
    width: 70%;
    padding: 0px 0px 0px 5px;
    border: 1px solid #C5E2FF;
    background: #FBFBFB;
    outline: 0;
    -webkit-box-shadow:inset 0px 1px 6px #ECF3F5;
    box-shadow: inset 0px 1px 6px #ECF3F5;
    font: 200 12px/25px "Trebuchet MS", Arial, Helvetica, sans-serif;
    height: 30px;
    line-height:15px;
    margin: 2px 6px 16px 0px;
}
textarea{
    height:100px;
    padding: 5px 0px 0px 5px;
    width: 70%;
}
.button,.reset,.submit,.button1{
    padding: 10px 30px 10px 30px;
    background: #66C1E4;
    border: none;
    color: #FFF;
    box-shadow: 1px 1px 1px #4C6E91;
    -webkit-box-shadow: 1px 1px 1px #4C6E91;
    -moz-box-shadow: 1px 1px 1px #4C6E91;
    text-shadow: 1px 1px 1px #5079A3;
}
.button:hover,.reset:hover,.submit:hover,.button1:hover{
    background: #9AFF02;
}
.wrapper {
    width: 600px;
    margin: 0 auto;
}
.ds-post-main {
    position: relative;
    width: 500px;
    margin-left: auto;
    margin-right: auto;
}
.ds-comment-body {
    z-index: 1;
    position: relative;
    left: 0;
    background: #F0F0E3;
    padding: 15px 15px 15px 30px;
    color: #696A52;
    border-radius: 5px;
    box-shadow: 0 1px 2px rgba(0,0,0,.15), 0 1px 0 rgba(255,255,255,.75) inset;
}
.ds-comment-body {
    color: #696A52;
}
.ds-avatar {
    z-index: 2;
    position: absolute;
    top: 48px;
    left: -20px;
    padding: 5px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    box-shadow: -1px 0 1px rgba(0,0,0,.15) inset;
}
.ds-avatar a {
    display: block;
    padding: 1px;
    width: 32px;
    height: 32px;
    border: 1px solid #B9BAA6;
    border-radius: 50%;
    background-color: #fff;
    -moz-transition: color 0.15s linear;
    -webkit-transition: color 0.15s linear;
    transition: color 0.15s linear;
}
a {
    text-decoration: none;
}

文件结构(.bak是备份文件,不用理会)

猜你喜欢

转载自blog.csdn.net/chen_hao_181/article/details/83795764