1.数据库:mes.sql
-- phpMyAdmin SQL Dump
-- version 4.7.9
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1:3306
-- Generation Time: 2018-11-25 13:00:40
-- 服务器版本: 5.7.21
-- PHP Version: 5.6.35
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `mes`
--
-- --------------------------------------------------------
--
-- 表的结构 `admin`
--
DROP TABLE IF EXISTS `admin`;
CREATE TABLE IF NOT EXISTS `admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(20) NOT NULL,
`pass_word` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
--
-- 转存表中的数据 `admin`
--
INSERT INTO `admin` (`id`, `user_name`, `pass_word`) VALUES
(1, 'admin', 'admin');
-- --------------------------------------------------------
--
-- 表的结构 `mes_info`
--
DROP TABLE IF EXISTS `mes_info`;
CREATE TABLE IF NOT EXISTS `mes_info` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`title` varchar(20) NOT NULL COMMENT '标题',
`content` text NOT NULL COMMENT '内容',
`addtime` varchar(20) NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
--
-- 转存表中的数据 `mes_info`
--
INSERT INTO `mes_info` (`id`, `title`, `content`, `addtime`) VALUES
(2, '', '', '2018-11-25 20:43:42'),
(3, '熊出没', '熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没熊出没', '2018-11-25 05:48:50'),
(4, '刺客', '刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客刺客', '2018-11-25 08:03:49'),
(5, '时区效果', '时区效果时区效果时区效果时区效果时区效果时区效果时区效果时区效果时区效果', '2018-11-25 18:55:23');
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
2.前台首页index.php
<?php
header('Content-type:text/html;charset=utf-8');
//获取数据
//1.连接数据库
$conn = mysqli_connect('localhost','root','123','mes');
//2.判断是否连接
//3.设置编码
mysqli_set_charset($conn,'utf8');
//获取当前页
$page = isset($_GET['page']) ? $_GET['page'] : 1;
//设置每页显示数量
$pagesize = 2;
//获取中的记录数
$sql = "select * from mes_info";
$result = mysqli_query($conn,$sql);
$total = mysqli_num_rows($result);
//计算做大页数
$pagemax = ceil($total/$pagesize);
//计算偏移量
$offset = ($page - 1)*$pagesize;
//4.获取数据sql语句
$sql = "select * from mes_info order by id desc limit $offset,$pagesize";//order by 倒序排序
//5.发送sql语句
$result = mysqli_query($conn,$sql);//结果集的资源
//6.要结果集资源转换成数据
//$row = mysqli_fetch_assoc($result);//得到一条
//var_dump($row);
//7.获取多条数据
//定义一个空数据,接受将来的数据
$rows = array();
//把数据放到一个新的二维数组中
while($row = mysqli_fetch_assoc($result)){
$rows[] = $row;//rows的下标是自动增长的 array (size=1) 0 => array (size=4) 下标是0、1、2、、、、
}
//var_dump($rows);//打印出来,方便看一下
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>前台留言板主页和查看留言</title>
<link rel="stylesheet" href="bs/css/bootstrap.min.css">
<script src="bs/js/jquery.min.js"></script>
<script src="bs/js/bootstrap.min.js"></script>
<script src="bs/js/holder.min.js"></script>
</head>
<body>
<div class="container">
<nav class="navbar navbar-inverse" >
<div class="navbar-header">
<a class="navbar-brand" href="#">留言板</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="add.php">发布留言</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
<div class="row">
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">
最新
</div>
<div class="panel-body">
<ul>
<li>内容</li>
</ul>
</div>
</div>
</div>
<div class="col-md-9">
<?php foreach($rows as $k=>$v): ?>
<div class="panel panel-primary">
<div class="panel-heading">
<span class="glyphicon glyphicon-star"></span>标题 : <?php echo $v['title'];?>
</div>
<div class="panel-body" style="height:120px;">
<?php echo $v['content']?>
</div>
<div class="panel-footer">
<?php echo $v['addtime']?>
</div>
</div>
<?php endforeach;?>
<ul class="pager">
<li class="previous"><a href="index.php?page=1">← 首页</a></li>
<li><a href="index.php?page=<?php echo $page<=1 ? $page:$page-1;?>">上一页</a></li>
<li><a href="index.php?page=<?php echo $page>=$pagemax ? $pagemax:$page+1;?>">下一页</a></li>
<li class="next"><a href="index.php?page=<?php echo $pagemax;?>">末页 →</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>
效果图
3.前台发布留言页
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>前台发布留言</title>
<link rel="stylesheet" href="bs/css/bootstrap.min.css">
<script src="bs/js/jquery.min.js"></script>
<script src="bs/js/bootstrap.min.js"></script>
<script src="bs/js/holder.min.js"></script>
</head>
<body>
<div class="container">
<nav class="navbar navbar-inverse" >
<div class="navbar-header">
<a class="navbar-brand" href="index.php">留言板</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">发布留言</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
<div class="row">
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">
排行
</div>
<div class="panel-body">
内容
</div>
</div>
</div>
<div class="col-md-9">
<form role="form" action="insert.php" method="post">
<div class="form-group">
<label>留言主题</label>
<input type="text" class="form-control" name="title">
</div>
<div class="form-group">
<label>留言内容</label>
<textarea class="form-control" rows="10" name="content"></textarea>
</div>
<input type="submit" class="btn btn-default" value="发表">
</form>
</div>
</div>
</div>
</body>
</html>
发布留言页效果图
发布留言处理页面insert.php
<?php
//防止乱码
header("Content-type:text/html;charset=utf-8");
//接收数据
$title = $_POST['title'];
$content = $_POST['content'];
date_default_timezone_set('PRC'); //设置中国时区
$addtime = date("Y-m-d H:i:s"); //2018-11-24 18:40:22
//echo $addtime;//打印出时间看一下
//对数据进行验证
if($title == "" || $content == ""){
//echo "标题或内容不能为空!";
//用js弹出提示框并快速跳回原页面
echo "<script>alert('标题或内容不能为空');
window.location.href='add.php';
</script>";
//失败后添加停止运行的,否则还是会传到后台
exit;
}
//插入数据到数据库
//1.连接数据库
$conn = mysqli_connect('localhost','root','123','mes');//可以加个@错误抑制符,只在不重要的不影响页面运行的地方加
//2.判断是否连接成功
//3.设置编码
mysqli_set_charset($conn, "utf8");
//4.准备插入sql语句
$sql = "insert into mes_info values(null,'{$title}','{$content}','{$addtime}')";
//print_r($sql);
//5.发送sql语句
$result = mysqli_query($conn,$sql);
//判断是否成功
if(!$result){
echo "<script>alert('添加失败');
window.location.href='add.php';
</script>";//window当前窗口,location跳转,href跳转的连接地址
}else{
echo "<script>alert('添加成功');
window.location.href='index.php';
</script>";
}
?>
4.公共的连接数据库config.php
<?php
//设置PHP的浏览器编码
header('Content-type:text/html;charset=utf-8');
//1.连接数据库
$conn = mysqli_connect('localhost','root','123','mes');
//2.判断连接
//3.设置编码
mysqli_set_charset($conn,'utf8');
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>公共的连接数据库</title>
</head>
<body>
</body>
</html>
5.后台登录界面login.php 默认用户名:admin 密码:admin
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
<link rel="stylesheet" href="../bs/css/bootstrap.min.css">
<script src="../bs/js/jquery.min.js"></script>
<script src="../bs/js/bootstrap.min.js"></script>
<script src="../bs/js/holder.min.js"></script>
</head>
<body>
<div class="container">
<div class="panel panel-default" style="width:500px;margin:10px auto;">
<div class="panel-heading">
留言板管理登录
</div>
<div class="panel-body">
<form class="form-horizontal" role="form" method="post" action="chklogin.php">
<div class="form-group">
<label class="col-sm-2 control-label">Username</label>
<div class="col-sm-10">
<input type="text" name="username" class="form-control" placeholder="Usename">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">Password</label>
<div class="col-sm-10">
<input type="password" name="password" class="form-control" id="inputPassword3" placeholder="Password">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" class="btn btn-default" value="登陆">
</div>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
效果图
登录处理页chklogin.php
<?php session_start();?><!-- 开启session -->
<?php
//接收表单的数据
$username = $_POST['username'];
$password = $_POST['password'];
//验证不能为空
if($username == "" || $password == "")
{
echo "<script>alert('用户名或密码不能为空!');
window.location.href='login.php';</script>";
exit;
}
//验证用户名和密码是否正确,要到数据库中验证
//连接数据库
$conn = mysqli_connect('localhost','root','123','mes');
//设置编码
mysqli_set_charset($conn,'utf8');
//准备sql语句--通过用户名取当前用户的所有信息
$sql = "select * from admin where user_name='{$username}' and pass_word='{$password}'";
$result = mysqli_query($conn,$sql);
$row = mysqli_num_rows($result);//没有取到数据则为0,也就是false,但是0是有值得,取到了这是1,也就是true
//var_dump($row);
if(!$row){
echo "<script>alert('用户名或密码不正确!');
window.location.href='login.php';</script>";
exit;
}
else{
$_SESSION['username'] = $username;//将登录名保存到session中
echo "<script>alert('登录成功');
window.location.href='index.php';</script>";
exit;
}
?>
6.后台留言板主页index.php(注意:为防止用户非法登录开启session)
<?php session_start();?><!-- 开启session -->
<?php
if(empty($_SESSION['username'])){
echo "<script>alert('请正常登陆!');
window.location.href='login.php';
</script>";
//header("Location: login.php");//脚本弹出只能用window.location.href='';
exit();
}
//1.连接数据库
$conn = mysqli_connect('localhost','root','123','mes');
//2.判断连接
//3.设置编码
mysqli_set_charset($conn,'utf8');
//获取当前页
$page = isset($_GET['page']) ? $_GET['page'] : 1;
//设置每页显示数量
$pagesize = 2;
//获取中的记录数
$sql = "select * from mes_info";
$result = mysqli_query($conn,$sql);
$total = mysqli_num_rows($result);
//计算做大页数
$pagemax = ceil($total/$pagesize);
//计算偏移量
$offset = ($page - 1)*$pagesize;
//4.准备sql语句
$sql = "select * from mes_info order by id desc limit $offset,$pagesize";
//5.发送
$result = mysqli_query($conn,$sql);//如果是有结果集的返回值:成功返回资源,失败false,如果是insert,update,delete是true和false
//6.把资源转换成数据
$rows = array();//定义的原因:高级版本会在下面用到时提示找不到
while($row = mysqli_fetch_assoc($result)){
$rows[] = $row;//数组接收
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>后台列表</title>
<link rel="stylesheet" href="../bs/css/bootstrap.min.css">
<script src="../bs/js/jquery.min.js"></script>
<script src="../bs/js/bootstrap.min.js"></script>
<script src="../bs/js/holder.min.js"></script>
</head>
<body>
<div class="container">
<nav class="navbar navbar-inverse" >
<div class="navbar-header">
<a class="navbar-brand" href="index.html">管理</a>
</div>
</nav>
<div class="row">
<div class="col-md-3">
<div class="list-group">
<a href="#" class="list-group-item active">
管理列表
</a>
<a href="#" class="list-group-item">留言管理</a>
</div>
</div>
<div class="col-md-9">
<div class="panel panel-warning">
<div class="panel-heading">
留言管理
</div>
<div class="panel-body">
<table class="table table-bordered">
<tr>
<th>序号</th>
<th>标题</th>
<th>留言时间</th>
<th>操作</th>
</tr>
<?php foreach($rows as $k=>$v){?>
<tr>
<td><?php echo $v['id'];?></td>
<td>标题: <?php echo $v['title'];?></td>
<td>时间: <?php echo $v['addtime'];?></td>
<td><a href="edit.php?id=<?php echo $v['id'];?>">修改</a>
<a href="delete.php?id=<?php echo $v['id'];?>" onclick="return confirm('确定要删除吗?');" >删除</a>
</td>
</tr>
<?php }?>
</table>
</div>
<div class="panel-footer">
<ul class="pager">
<li class="previous"><a href="index.php?page=1">← 首页</a></li>
<li><a href="index.php?page=<?php echo $page<=1 ? $page:$page-1;?>">上一页</a></li>
<li><a href="index.php?page=<?php echo $page>=$pagemax ? $pagemax:$page+1;?>">下一页</a></li>
<li class="next"><a href="index.php?page=<?php echo $pagemax;?>">末页 →</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
7.后台修改页面edit.php
<?php
include "../public/config.php";
//1.接收id
$id = $_GET['id'];
//2.通过id直来获取当前记录的其他信息
$sql = "select * from mes_info where id='{$id}'";
//3.发送sql语句
$result = mysqli_query($conn,$sql);
//4.解析结果集
$row = mysqli_fetch_assoc($result);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>后台修改</title>
<link rel="stylesheet" href="../bs/css/bootstrap.min.css">
<script src="../bs/js/jquery.min.js"></script>
<script src="../bs/js/bootstrap.min.js"></script>
<script src="../bs/js/holder.min.js"></script>
</head>
<body>
<div class="container">
<nav class="navbar navbar-inverse" >
<div class="navbar-header">
<a class="navbar-brand" href="index.html">管理</a>
</div>
</nav>
<div class="row">
<div class="col-md-3">
<div class="list-group">
<a href="#" class="list-group-item active">
管理列表
</a>
<a href="index.php" class="list-group-item">留言管理</a>
</div>
</div>
<div class="col-md-9">
<form role="form" action="update.php" method="post">
<input type="hidden" name="id" value="<?php echo $row['id'];?>"><!--隐藏域放置id,才可以到修改处理页面修改-->
<div class="form-group">
<label>留言主题</label>
<input type="text" class="form-control" name="title" value="<?php echo $row['title'];?>">
</div>
<div class="form-group">
<label>留言内容</label>
<textarea class="form-control" rows="10" name="content"><?php echo $row['content'];?></textarea>
</div>
<input type="submit" class="btn btn-default" value="发表">
</form>
</div>
</div>
</div>
</body>
</html>
修改处理页update.php
<?php
//引入配置文件
include "../public/config.php";
//1.接收隐藏域的id
$id = $_POST['id'];
//接收其他信息
$title = $_POST['title'];
$content = $_POST['content'];
date_default_timezone_set('PRC'); //设置中国时区
$addtime = date("Y-m-d H:i:s"); //2018-11-24 18:40:22
//验证合法性(传递过来的数据是否是想要的数据)和有效性(数据是否存在)
if($title == "" || $content == ""){
echo "<script>alert('标题或内容不能为空!');window.location.href='edit.php?id='+$id;</script>";
}
//准备修改的sql语句
$sql = "update mes_info set title='{$title}',content='{$content}',addtime='{$addtime}' where id='{$id}'";
//发送sql语句
$result = mysqli_query($conn,$sql);
//判断是否成功
if(!$result){
echo "<script>alert('修改失败!');window.location.href='edit.php?id='+$id;</script>";
}
else
{
echo "<script>alert('修改成功');window.location.href='index.php';</script>";
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>执行修改的页面</title>
</head>
<body>
</body>
</html>
8.后台删除页delete.php
<?php
include "../public/config.php";//引入文件。 ../是上一级的意思
//1.接收当前记录的id
$id = $_GET['id'];
//2.进行删除的操作
//2.1连接数据库
//2.2准备删除的sql语句
$sql = "delete from mes_info where id='{$id}'";
//2.3发送sql语句
$result = mysqli_query($conn,$sql);
//2.4对结果进行判断
if(!$result)
{
echo "<script>alert('删除失败');window.location.href='index.php';</script>";
//exit;
}
else
{
echo "<script>alert('删除成功');window.location.href='index.php';</script>";
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>后台删除</title>
</head>
<body>
</body>
</html>