PHP基础知识总结(四) 留言板例子 知识应用

1、留言板显示页面:note.php

<?php
    
$host = "127.0.0.1";
$user = "root";
$pwd = "zst@123";
$dbname = "php10";
$db = new mysqli($host, $user, $pwd, $dbname);
if($db->errno <> 0){
    echo "数据库连接失败";
    exit;
}
$sql = "select * from msg where id>15 order by id desc";
$mysqli_result = $db->query($sql);
if($mysqli_result == false){
    echo "查询语句执行失败";
    exit;
}

$rows = [];
while($row = $mysqli_result->fetch_array(MYSQLI_ASSOC)){
    $rows[] = $row;
}
//var_dump($rows);

?>
<html>
    <head>
        <meta charset="UTF-8"/>
        <title>留言本</title>
        <!--<link rel="stylesheet" type="text/css" href="test.css"> -->
        <style type="text/css">
            .wrap{
                width: 800px;
                margin: 0px auto;
            }
            .add{
                overflow:hidden;   <!--消除float-->
            }
            .add .content{
                width: 798px;
                margin: 0px;
                padding: 0px;
            }
            .add .user{
                float: left;
            }
            .add .btn{
                float: right;
            }
            .msg{
                margin: 20px 0px; 
                background: #ccc;
                padding: 5px;
            }
            .msg .info{
                overflow: hidden;
            }
            .msg .user{
                float:left;
                color: blue;
            }
            .msg .time{
                float: right;
                color:999;
            }
            .msg .content{
                width: 100%;
            }

        </style>
    </head>
    <body>
        <div class="wrap">
            <!--发表留言-->
            <div class="add">
                <form action="messageboard_class.php" method="post">
                    <textarea name="content" class="content" cols="50" rows="5"></textarea>
                    <br/>
                    <input name="user" class="user" type="text"/>
                    <input class="btn" type="submit" value="发表留言"/>
                </form>
            </div>
            <!--查看留言 -->
            <?php
                //设置日期时区,否则会少7小时
                date_default_timezone_set("Asia/Shanghai");
                foreach ($rows as $key => $record) {
                        
            ?>
            <div class="msg">
                <div class="info">
                    <span class="user"><?php echo $record["user"]; ?></span>
                    <span class="time"><?php echo date('Y-m-d H:i:s', $record["intime"]); ?></span>
                </div>    
                <div class="content">
                    <?php echo $record["content"]; ?>
                </div>
            </div>
            <?php
                }
            ?>
        </div>
    </body>
</html>

2、提交留言后台处理:messageboard_class.php

<?php
include("messageboard_class_import.php");  //过滤留言名称的类
include("connect.php");                    //数据库连接工具类

//var_dump($_POST);
$content = $_POST['content'];
$user = $_POST['user'];

//使用包含文件中的类,初始化input类对象 
$input = new input();

if($input -> valid($content) == false){
    die("输入的内容不能为空!");   //die方法:停止程序,在页面上显示内容
}
if($input -> valid($user) == false){
    die("输入的用户名为空或不合法!");
}


//var_dump($_POST);


/* 插入语句 */
//设置日期时区,否则会少7小时
date_default_timezone_set("Asia/Shanghai");
$time = time();
echo date("Y-m-d H:i:s", $time);
$sql = "insert into msg(content, user, intime) values('{$content}', '{$user}', '{$time}')";
$connectClass = new conClass();
$db = $connectClass->getDB();
$is = $db->query($sql);
if($is == true){
    echo "执行成功";
}else{
    echo "执行失败";
}

//重定向浏览器访问
header("Location:note.php");

/*
//查询语句
$sql = "select * from msg where id > 15 order by id desc";
$con = new conClass();
$db = $con -> getDB();
$mysqli_result = $db ->query($sql);
if($mysqli_result == false){
    echo "SQL 错误";
    exit;
}

//定义一个数组
$rows = [];
while($row = $mysqli_result->fetch_array(MYSQLI_ASSOC)){
    $rows[] = $row;   //rows 数组不写下标,意思是从0开始;
}
var_dump($rows);  //可以看出是一个二维数组,键从0开始,值是每一行的数据(一维数组表示)
*/
?>

      过滤留言名称的类 messageboard_class_import.php

<?php


class input{
    public function valid($info){
        if($info == ""){
            return false;
        }

        //禁止使用某个用户名留言
        $note = ['张三', '李四', '王乐'];
        foreach($note as $name => $value){
            //echo $name;
            if($info == $value){
                return false;
            }
        }

        return true;
    }
}


?>

      数据库连接工具类connect.php

<?php

class conClass{
    //写入数据库


    public function getDB(){
        $host = "127.0.0.1";
        $dbuser = "root";
        $passwd = "zst@123";
        $dbname = "php10";
        $db = new mysqli($host, $dbuser, $passwd, $dbname);
        if($db->errno <> 0){
            return null;
        }
        return $db;
    }
    

}

?>

 

转载于:https://www.cnblogs.com/wangle1001986/p/8644335.html

开发一个基于PHP + MySQL技术的小型web系统,通过用户的登录和注册来主要实现讯息系统的发布、查看、删除和退出登录功能。 1) 登录设计:通过连接 MySQL 数据库来判断当前用户和密码是否在数据库中存在如存在则把账户名写入到session中然后进入系统,否则登录失败。 2) 注册设计:填写需要注册的账户和密码以及确认密码,如数据库中有账户一样的记录,则注册失败;如密码和确认密码不一样,则同样注册失败;否则注册成功跳转到登录页面。 3) 面向对象:对数据库的一些操作封装成一个类。 4) 发布讯息:用户填写好昵称,主题,新鲜事即可点击发布。然后通过后端程序传入到数据库中保存,如昵称和主题没有填写,否则发布失败。 5) 查看讯息:用户发布成功后自动跳转到查看讯息页面。然后读取页面session信息来显示登录者的名字。通过后端程序读取数据库的讯息并显示到查看页面。也可点击查看讯息按钮来查看讯息。 6) 删除讯息:通过读取页面的session 来获取当前的登录者的账号,当用户点击删除时,需要判断删除的讯息是否为当前登录者发布的,如是则删除成功,否则删除失败。 7) 退出登录:当用户点击退出登录时跳转到登录页面并使当前session失效。 8) 天气预报与日期显示:通过网络在前端页面中即可显示出来。 9) 文件上传:可以在注册时上传用户的头像,登录时在前端页面显示出来。 10) Session设置:在登录页面设置session,其他页面需要时可以读取。 运行环境NetBeans+WampServer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值