php——25-留言板实例(前后端配合)

mysql.php

前端页面


//预定义数据库连接参数
$host = '127.0.0.1';
$dbuser = 'root';
$psd = '123456';
$dbname = 'sql-practise';

//连接到数据库
$db = new mysqli($host, $dbuser, $psd, $dbname);
if ($db->connect_errno <> 0) {
    die('连接数据库失败');
}

//设定数据库数据传输的编码
$db->query('SET NAMES UTF8');

//执行
$sql='SELECT * FROM msg ORDER BY id DESC';
$mysqli_result=$db->query($sql);

if($mysqli_result===false){
    die('sql执行错误');
}

//循环数据
$rows=[];
while ($row=$mysqli_result->fetch_array(MYSQLI_ASSOC)){
    $rows[$row['id']]=$row;
}
//var_dump($rows);//打印数据

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>留言本</title>
</head>
<style>
    .wrap {
        width: 600px;
        margin: 0 auto;
    }

    .add {
        overflow: hidden;
    }

    .add .content {
        width: 598px;
        margin: 0;
        padding: 0;
    }

    .add .user {
        float: left;
    }

    .add .btn {
        float: right;
    }

    .msg {
        margin: 20px 0;
        background: #ccc;
        padding: 5px;
    }

    .msg .info {
        overflow: hidden;
    }

    .msg .user {
        display: inline-block;
        color: blue;
    }

    .msg .time {
        float: right;
        color: #999;
    }

    .msg .content {
        display: block;
        margin-top: 40px;
    }
</style>
<body>
<div class="wrap">
    <!--发表留言-->
    <div class="add">
        <form action="save.php" method="post">
            <textarea name="content" class="content" cols="50" rows="5"></textarea>
            <br>
            <input name="user" type="text" class="user">
            <input type="submit" value="发表留言" class="btn">
        </form>
    </div>
    <!--查看留言-->
     foreach ($rows as $value):?>
    <div class="msg">
        <div class="info">
            <span class="user"> echo $value['user'] ?></span>
            <span class="time"> echo date('Y-m-d,h-m-s',$value['intime']) ?></span>
            <span class="content"> echo $value['content'] ?></span>
        </div>
    </div>
     endforeach; ?>
</div>
</body>
</html>

input.php

所引入的input.php文件(面向对象封装)



//面向对象
class input
{
    //定义函数,对留言内容进行检查
    function post($content)
    {
        //判断空
        if ($content == '') {
            return false;
        }

        //禁止使用用户名
        $n = ['张三', '李四', '王五', '赵六'];
        foreach ($n as $name) {
            if ($content == $name) {
                die('禁止使用的用户名');
            }
        }

        return true;
    }
}

save.php

后台数据接收



include('input.php');

$content = $_POST['content'];
$user = $_POST['user'];

$input = new input();

//调用函数,检查留言
$is = $input->post($content);
if (!$is) {
    //die指停止中止程序 并打印内包含的字符串
    die('留言内容不能为空');
}
$is = $input->post($user);
if (!$is) {
    die('留言人不能为空');
}

var_dump($content, $user);

//2、将数据入库
//预定义数据库连接参数
$host = '127.0.0.1';
$dbuser = 'root';
$psd = '123456';
$dbname = 'sql-practise';

//连接到数据库
$db = new mysqli($host, $dbuser, $psd, $dbname);
if ($db->connect_errno <> 0) {
    die('连接数据库失败');
}

//设定数据库数据传输的编码
$db->query('SET NAMES UTF8');

//里面的花括号是定界符,存放变量(下面引号内容,先在数据库执行检测一下再用)
$time = time();
$sql = "INSERT INTO msg(content,user,intime) VALUES ('{$content}','{$user}','{$time}')";

//执行sql
$is = $db->query($sql);

//打印判断是否执行成功(true成功,false失败)
var_dump($is);

header("location:mysql.php");//执行完自动跳转回页面 用于页面内部数据更新

你可能感兴趣的:(php)