【前端】从 0 到 1 实现一个网站框架(一、注册 [1] )

news2024/12/23 14:16:17

Hi~你好呀,等你很久啦~

我是 LStar,一枚来自北京的初二女生,2020 年年初加入 CSDN。

话不多说,直入主题~(我现在看两年多前我 11 岁那会发的文章,越看越想笑。为了不让四年后 18 岁的我看着这篇文章露出 “一言难尽的笑容”,我还是不扯那么多闲篇了呃)


前言

今年寒假,我自学了前端三件套 & 一点点 PHP,给班级做了一个作业发布网站,效果如下:

(嘿嘿,其实是和我两年半前在 CSDN 认识的曹智铭同学一起做的呀~~他搭建了一个后台,超厉害~~!)

(这个字体也是他的,嘿嘿嘿~~)

其实这也是一个网站框架(已经开源到了 GitHub),但功能非常简陋,纯静态,只有最基本的主页和文章页面,无注册登录/论坛/留言/聊天等动态的多样的功能。

暑假的时候一直在奋战 C++,也就无暇顾及这个 “框架”。

最近,我开始构思,在这个 “框架” 的基础上,开发一个功能更全面,更为 “动态” 的网站框架(点名 WordPress!! 哦当然我不是说我的框架能和 WP 相提并论...)。

于是,我决定从最必要也最基本的(我之前一直不会的)注册登录功能开始写起。


开始吧!

首先当然是注册啦~

这一篇我会搭出样式框架并实现信息判断功能,后续(一周)用 3-4 篇的篇幅将其完善。

当前目录结构:

· sign.css——注册登录页面 CSS 样式

· signup.php——注册页面(主页面)

· signup_success.html——注册成功后跳转至的页面(不是登录页面哦)

先把样式写出来:

sign.css:

/* 注册登录页面 CSS 样式 */

body {
    /* 这里的 position 和 min-height 是为了以后加上 footer 做准备的~(好吧其实 footer 我已经写完了)*/
    position: relative;
    min-height: 95vh;
    background-color: rgb(220, 250, 255);
}

.main {
    /* 也是为了 footer 做准备~ */
    padding-bottom: 160px;
}

h1 {
    text-align: center;
    font-size: 40px;
}

a {
    display: block;
    text-align: center;
    color: rgb(240, 0, 255);
    padding-top: 20px;
}

a:hover {
    color: blue;
}

a:active {
    color: yellow;
}

再把注册成功页面写出来...

signup_success.html:

<!-- 注册成功页面 -->

<!DOCTYPE html>
<html>
    <head>
        <title>注册成功!</title>
        <link rel="stylesheet" href="sign.css">
        <style>
            h1 {
                padding-top: 18%;
            }
        </style>
    </head>

    <body>
        <div class="sign">
            <div class="main">
                <h1>注册成功!</h1>
            </div>
        </div>
    </body>
</html>

写完这两个,重头戏开始了——注册主页面!

我们首先需要确定,注册时都需要用户填写哪些信息?

我确定了如下几个:手机号、用户名、密码(以及二次输入确认密码)、短信验证码、邮箱和个人网站(后两个选填)。

新建变量:

第一行 $flag 是指示变量,决定是否跳转到注册成功页面。

第二行的变量用于存储用户输入的信息。

第三行的变量用于存储 “输入不符合规范” 时的提示信息(具体输入规范见后文)。

$flag = 0;
$phone = $usern = $pwd = $pwd2 = $verification = $website = $email = "";
$pErr = $nErr = $pwdErr = $pwd2Err = $vErr = $wErr = $eErr = "";

而提交信息,自然要用 PHP 表单咯~

由于有两个是选填信息,我们用 * 来表示必填,没有 * 则为选填。

我希望前端的显示是这样的:

也就是:需输入的项的名称+输入框+(*)+“输入不符合规范” 时的提示信息。

呐,把表单做出来:

(我比较喜欢用 POST,安全,数据长度不受限,而且 url 也会好看呀~)

用 <center></center> 让所有的 input 框居中显示。

<form method="post" action="signup.php">
    <!--需输入的项的名称+输入框+(*)+“输入不符合规范” 时的提示信息-->
    <center>手机号:<input type="text" name="phone" id="phone_number">
    <span, class="must">* <?php echo $pErr?></span></center><br><br>
    <center>用户名:<input type="text" name="usern">
    <span, class="must">* <?php echo $nErr?></span></center><br><br>
    <center>密码:<input type="password" name="pwd">
    <span, class="must">* <?php echo $pwdErr?></span></center><br><br>
    <center>确认密码:<input type="password" name="pwd2">
    <span, class="must">* <?php echo $pwd2Err?></span></center><br><br>
    <center>验证码:<input type="text" name="verification">
    <span, class="must">* <?php echo $vErr?></span></center><br><br>
    <center>个人网站:<input type="url" name="website">
    <span, class="must"><?php echo $wErr?></span></center><br><br>
    <center>邮箱:<input type="email" name="email">
    <span, class="must"><?php echo $eErr?></span></center><br><br>
    <center><input type="submit" name="注册" value="注册"></center>
</form>

well,做完表单,就要进入到最关键的——信息判断环节!

在正式开始判断之前,我们需要对用户输入的数据做一些处理...

(每一个函数的具体功能都在注释中写啦~)

// 数据过滤函数
function test_input($data)
{
    $data = trim($data);    // 移除字符串两侧的空白字符或其他预定义字符
    $data = stripslashes($data);    // 删除由 addslashes() 函数添加的反斜杠
    $data = htmlspecialchars($data);    // 把一些预定义的字符转换为 HTML 实体
    return $data;
}

做好预处理,就开始判断吧!

我们一项一项来。

首先是手机号(它也是数据表的主键)。它是必填项,所以需要先判断是否为空。为空则无需接着进行正则判断,不为空则继续进行正则判断,判断是否为合法手机号。

正则表达式:/^1[3456789]\d{9}$/

手机号完整判断:

// 手机号
if (empty($_POST["phone"]))
    $pErr = "手机号是必填项哦~";
else
{   
    $phone = test_input($_POST["phone"]);
    if (!preg_match("/^1[3456789]\d{9}$/", $phone))   
        $pErr = "非法的手机号...";
    else
        $flag++;
}

接着是用户名。它和手机号一样是必填项,先判断是否为空。为空则无需接着进行正则判断,不为空则继续进行正则判断,判断格式是否正确。

判断标准:不超过 20 个字符且仅包含字母和数字。

正则表达式:/[A-Za-z0-9_]/

用户名完整判断:

// 用户名
if (empty($_POST["usern"]))
    $nErr = "用户名是必填项哦~";
else
{   
    $name = test_input($_POST["usern"]);
    if (strlen($nErr) > 20)
        $nErr = "用户名不得超过 20 个字符哦~";
    else
    {
        // !/[A-Za-z0-9_]/ 意为:判断【是否不包含】大小写字母和数字;而 !/^[A-Za-z0-9_]$/ 意为:判断【是否不全为】大小写字母和数字
        if (!preg_match("/[A-Za-z0-9_]/", $name))    // 此处不能加 ^ 和 $
            $nErr = "用户名不得包含中文和特殊字符!";
        else
            $flag++;
    }
}

接着是密码。判断逻辑同上。

判断标准:长度 > 8 && 长度 <24,同时包含大小写字母和数字。

正则表达式(三个分开):/[A-Z]/、/[a-z]/、/[0-9]/

密码完整判断:

// 密码(长度,是否包含三项)
if (empty($_POST["pwd"]))
    $pwdErr = "密码是必填项哦~";
else
{
    $pwd = test_input($_POST["pwd"]);
    if (strlen($pwd) > 24 || strlen($pwd) < 8)
        $pwdErr = "密码的长度须在 8-24 之间哦~";
    else
    {
        // /[A-Z]/ 意为:判断【是否包含】大写字母;而 /^[A-Z]$/ 意为:判断【是否全为】大写字母
        if ((!preg_match("/[A-Z]/", $pwd)) || (!preg_match("/[a-z]/", $pwd)) || (!preg_match("/[0-9]/", $pwd)))
            $pwdErr = "密码需同时包含大小写字母和数字哦!";
        else
            $flag++;
    }
}

接着是确认密码。只需判断它和密码是否一致即可。

确认密码完整判断:

if (empty($_POST["pwd2"]))
    $pwd2Err = "确认密码是必填项哦~";
else
{   
    $pwd2 = $_POST["pwd2"];
    if ($pwd2 != $pwd)
        $pwd2Err = "两次输入的密码不一致!";
    else
        $flag++;
}

接着是短信验证码。这个我还没有做出来,将在后续文章中完成~。

这里用 111 做的测试,代码如下:

// 验证码
if (empty($_POST["verification"]))
    $vErr = "验证码是必填项哦~";
else
{      
    $verification = test_input($_POST["verification"]);
    // 和发出的验证码不一致
    // 发送验证码功能暂未开发,此处 111 仅为测试数据
    if ($verification != "111")    
        $vErr = "啊哦...验证码错误...";
    else
        $flag++;
}

接着是邮箱。它是选填项,所以可以为空。如果不为空则需要进行判断,判断是否为合法的邮箱号。

这里不用正则,用 PHP 自带的 filter_var() 函数。

邮箱完整判断:

// 邮箱
if (empty($_POST["email"]))
    $flag++;
else
{   
    $email = test_input($_POST["email"]);
    if (!filter_var($email, FILTER_VALIDATE_EMAIL))
        $eErr = "非法的邮箱地址...";
    else
        $flag++;
}

接着是个人网站,判断逻辑同上。

正则表达式:/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i

个人网站完整判断:

// 个人网站
if(empty($_POST["website"]))
    $flag++;
else
{   
    $website = $_POST["website"];
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $website))
        $wErr = "非法的 URL...";
    else
        $flag++;
}

到现在为止,所有的信息判断就完成啦!!

$flag:到我上场了,嘿嘿...~

前文说过,$flag 是指示变量,决定是否跳转到注册成功页面。

那么,什么时候跳转呢?

——自然是以上七项都满足条件的时候呀~!

而如果以上七项都满足,$flag 的值会为 7。

也就是...

if ($flag == 7)
{
    // 将所有数据写入数据库
    header("location: signup_success.html");             
}

(数据库将在下一篇文章中连上哒~)

至此,本篇文章计划需要实现的功能已经全部实现!

梳理一下逻辑~:

 下一篇文章会实现数据库功能,记得来看哦!!~~


全部代码

(sign.css 和 signup_success.html 的代码前面都写过啦~)

sign.php:

<!-- 注册页面 -->

<!DOCTYPE html>
<html>
    <head>
        <title>注册</title>
        <link rel="stylesheet" href="sign.css">

        <style>
            .must {
                color: red;
            }
        </style>
    </head>

    <body>
        <?php
            $flag = 0;
            $phone = $usern = $pwd = $pwd2 = $verification = $website = $email = "";
            $pErr = $nErr = $pwdErr = $pwd2Err = $vErr = $wErr = $eErr = "";
            
            // 数据验证
            if (isset($_POST["注册"]))
            {   
                // 手机号
                if (empty($_POST["phone"]))
                    $pErr = "手机号是必填项哦~";
                else
                {   
                    $phone = test_input($_POST["phone"]);
                    if (!preg_match("/^1[3456789]\d{9}$/", $phone))   
                        $pErr = "非法的手机号...";
                    else
                        $flag++;
                }
                
                // 用户名
                if (empty($_POST["usern"]))
                    $nErr = "用户名是必填项哦~";
                else
                {   
                    $name = test_input($_POST["usern"]);
                    if (strlen($nErr) > 20)
                        $nErr = "用户名不得超过 20 个字符哦~";
                    else
                    {
                        // !/[A-Za-z0-9_]/ 意为:判断【是否不包含】大小写字母和数字;而 !/^[A-Za-z0-9_]$/ 意为:判断【是否不全为】大小写字母和数字
                        if (!preg_match("/[A-Za-z0-9_]/", $name))    // 此处不能加 ^ 和 $
                            $nErr = "用户名不得包含中文和特殊字符!";
                        else
                            $flag++;
                    }
                }
                
                // 密码(长度,是否包含三项)
                if (empty($_POST["pwd"]))
                    $pwdErr = "密码是必填项哦~";
                else
                {
                    $pwd = test_input($_POST["pwd"]);
                    if (strlen($pwd) > 24 || strlen($pwd) < 8)
                        $pwdErr = "密码的长度须在 8-24 之间哦~";
                    else
                    {
                        // /[A-Z]/ 意为:判断【是否包含】大写字母;而 /^[A-Z]$/ 意为:判断【是否全为】大写字母
                        if ((!preg_match("/[A-Z]/", $pwd)) || (!preg_match("/[a-z]/", $pwd)) || (!preg_match("/[0-9]/", $pwd)))
                            $pwdErr = "密码需同时包含大小写字母和数字哦!";
                        else
                            $flag++;
                    }
                }
                
                // 确认密码
                if (empty($_POST["pwd2"]))
                    $pwd2Err = "确认密码是必填项哦~";
                else
                {   
                    $pwd2 = $_POST["pwd2"];
                    if ($pwd2 != $pwd)
                        $pwd2Err = "两次输入的密码不一致!";
                    else
                        $flag++;
                }

                // 验证码
                if (empty($_POST["verification"]))
                    $vErr = "验证码是必填项哦~";
                else
                {      
                    $verification = test_input($_POST["verification"]);
                    // 和发出的验证码不一致
                    // 发送验证码功能暂未开发,此处 111 仅为测试数据
                    if ($verification != "111")    
                        $vErr = "啊哦...验证码错误...";
                    else
                        $flag++;
                }

                // 个人网站
                if(empty($_POST["website"]))
                    $flag++;
                else
                {   
                    $website = $_POST["website"];
                    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $website))
                        $wErr = "非法的 URL...";
                    else
                        $flag++;
                }

                // 邮箱
                if(empty($_POST["email"]))
                    $flag++;
                else
                {   
                    $email = test_input($_POST["email"]);
                    if (!filter_var($email, FILTER_VALIDATE_EMAIL))
                        $eErr = "非法的邮箱地址...";
                    else
                        $flag++;
                }

                if ($flag == 7)
                {
                    // 将所有数据写入数据库
                    header("location: signup_success.html");
                }
            }
            
            // 数据过滤函数
            function test_input($data)
            {
                $data = trim($data);
                $data = stripslashes($data);
                $data = htmlspecialchars($data);
                return $data;
            }
        ?>
        
        <div class="sign">
            <div class="main">
                <h1>注册</h1>
                <center><p class="must">* 为必填字段</p></center>
                <form method="post" action="signup.php">
                    <center>手机号:<input type="text" name="phone" id="phone_number">
                        <span, class="must">* <?php echo $pErr?></span></center><br><br>
                    <center>用户名:<input type="text" name="usern">
                        <span, class="must">* <?php echo $nErr?></span></center><br><br>
                    <center>密码:<input type="password" name="pwd">
                        <span, class="must">* <?php echo $pwdErr?></span></center><br><br>
                    <center>确认密码:<input type="password" name="pwd2">
                        <span, class="must">* <?php echo $pwd2Err?></span></center><br><br>
                    <center>验证码:<input type="text" name="verification">
                        <span, class="must">* <?php echo $vErr?></span></center><br><br>
                    <center>个人网站:<input type="url" name="website">
                    <span, class="must"><?php echo $wErr?></span></center><br><br>
                    <center>邮箱:<input type="email" name="email">
                        <span, class="must"><?php echo $eErr?></span></center><br><br>
                    <center><input type="submit" name="注册" value="注册"></center>
                </form>
            </div>
        </div>
    </body>
</html>

呐!!!成功啦!!!~~


实现效果

“第一印象”:

(不做任何输入时的页面)

“哦?什么?你不按规定输入?哼哼...”:

(有不合规范的输入时的页面)

 “哎,这就对了嘛~~!”:

(输入全部成功后跳转的页面)

后记

呐~到这里,本篇文章就结束啦~

下一篇(预计 2~3 days later),我会实现数据库功能,记得来看呀~~

 嘿嘿嘿可以写代码了(a当然,上课我不会摸鱼的)。

附上我的 GitHub:https://github.com/Geeker-LStar

(这个框架现在还是私有仓库,更新到十篇文章的时候会开源哒~主要是现在的代码还有一堆 bug  而且目录也超乱呜呜呜)(没错我写了 1024+ 行了,但是还没写文章,因为还有一些隐秘的 bug,而且目录肯定还要改的)

那么,我们下一篇见!

2022-11-20

By Geeker · LStar(李天星)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超详细的mysql多表操作教程

目录 外键约束 概念 特点 操作 多表联合查询 概念 操作 多表操作总结 外键约束 概念 特点 定义一个外键时&#xff0c;需要遵守下列规则&#xff1a; 主表必须已经存在于数据库中&#xff0c;或者是当前正在创建的表。 必须为主表定义主键。 主键不能包含空值&#xf…

967亿销售额!博世解码智能汽车新蓝图

随着新一轮科技革命和产业变革的深化&#xff0c;在低碳化、电动化和智能化的推动下&#xff0c;处于变革关键时期的新能源汽车产业&#xff0c;正逐步由“政策驱动”转向“市场驱动”&#xff0c;智能化、网联化成为新趋势。 据中国汽车工业协会统计&#xff0c;今年我国新能…

通过 Traefik Hub 暴露家里的网络服务

Traefik Hub 简介 &#x1f4da;️Reference: 你的云原生网络平台 -- 发布和加固你的容器从未如此简单。 Traefik Hub 为您在 Kubernetes 或其他容器平台上运行的服务提供一个网关。 Traefik Hub 定位&#xff1a; 云原生网络平台 它有 2 大核心功能&#xff0c;我这次体验感…

pytorch深度学习实战lesson23

第二十三课 AlexNet AlexNet是在2012年被发表的一个金典之作&#xff0c;并在当年取得了ImageNet最好成绩&#xff0c;也是在那年之后&#xff0c;更多的更深的神经网路被提出&#xff0c;比如优秀的vgg,GoogleLeNet. 其官方提供的数据模型&#xff0c;准确率达到57.1%,top 1-5…

认识计算机中的简单指令集

我们现在有了一个新的寄存器&#xff0c;叫做指令寄存器。它包含一个字节&#xff0c;不同的内容表示控制部分的不同操作模式。也被称为指令代码。指令寄存器是一个字节&#xff0c;因此可能有多达256条不同的指令。所有指令都涉及在总线上移动字节。指令将导致字节进出RAM&…

【JavaEE】PCB和进程调度的基本过程

文章目录什么是进程PCB的组成PID内存指针文件描述符表并行和并发进程调度相关属性进程的状态优先级上下文进程的记账信息什么是进程 进程是正在运行的程序的实例&#xff08;an instance of a computer program that is being executed&#xff09; 进程&#xff08;process&am…

《爱的四十条法则》

《爱的四十条法则》 [土]艾丽芙沙法克 作者用别样的手法间接向我们阐述了爱的四十条法则&#xff0c;每一条都会触及不同阶段的灵魂&#xff0c;我仅将文中感触较深的摘录如下&#xff1a; 1.尽管有人这样说&#xff0c;但是爱绝对不是来的快&#xff0c;去的也快的甜蜜感觉而…

长尾分布系列论文解析(二)Delving into Deep Imbalanced Regression

大纲引言回归问题中的长尾分布LDSFDS实验和结果总结引言 本文是长尾分布系列论文解析的第二篇&#xff0c;前情提要详见长尾分布系列论文解析&#xff08;一&#xff09;Decoupling Representation and Classifier for Long-Tailed Recognition&#xff0c;本篇要介绍的是回归任…

弹性力学之边界条件

作者&#xff1a;张伟伟&#xff0c;来源&#xff1a;力学酒吧 弹性力学基本方程包括平衡方程、几何方程和广义胡克定律&#xff0c;其中平衡方程和几何方程都属于微分方程。我们知道&#xff0c;在求解微分方程时&#xff0c;会出现积分常数&#xff0c;只有确定了积分常数&a…

JS —— js中的节流与防抖

文章目录 前言一、节流 1.什么是节流2.做节流可解决什么问题3.如何做节流二、防抖 1.什么是防抖2.做防抖可解决什么问题3.如何做防抖总结前言 最近有同学问到节流与防抖的相关知识点&#xff0c;于是乎&#xff0c;四处查资料&#xff0c;找一找&#xff0c;看一看&#xff0c…

单元测试:会变化的定义

有一种东西&#xff0c; 如果它太小&#xff0c;需要付出的努力就太大&#xff1b;如果它太大&#xff0c;就很难测试。 没错&#xff01;它是单元。 但是什么才是一个好的单元定义呢?为什么它如此重要? 单元的定义对测试过程有很大的影响&#xff0c;但同时单元的定义也是不…

Transformer总结和梳理

Transformer总结和梳理Positional encodingSelf-attentionMulti--head-attentionAdd&NormAdd操作Norm操作FeedForwardMASKPadding MaskedSelf-Attention Masked首先来看一下Transformer结构的结构&#xff1a;Transformer是由Encoder和Decoder两大部分组成&#xff0c;首先…

mysql安装与配置及四大引擎和数据类型、建表以及约束、增删改查、常用函数、聚合函数以及合并

目录 一.mysql安装与配置 1.mysql简介 2.mysql 安装 安装MySQL&#xff08;8.0的版本&#xff09; 安装MySQL&#xff08;5.7的版本&#xff09; 删除MySQL&#xff08;这是5.5版本的卸载方式&#xff09; 3.命令行登陆及权限修改 一.启动方式 二.停止 三.重启 wind…

LeetCode每日一题——808. 分汤

LeetCode每日一题系列 题目&#xff1a;808. 分汤 难度&#xff1a;普通 文章目录LeetCode每日一题系列题目示例思路题解题目 有 A 和 B 两种类型 的汤。一开始每种类型的汤有 n 毫升。有四种分配操作&#xff1a; 提供 100ml 的 汤A 和 0ml 的 汤B 。 提供 75ml 的 汤A 和…

大衣哥在《火火的情怀》后,和孟文豪张成军推出《新时代的农民》

最近一段时间&#xff0c;因为《火火的情怀》版权问题&#xff0c;农民歌唱家大衣哥&#xff0c;被著名导演兼编剧谷传民起诉。话说大衣哥因为被谷传民起诉&#xff0c;也被推上了舆论的风口浪尖&#xff0c;同时也让《火火的情怀》又一次大火。 在谷传民起诉大衣哥的案件当中&…

注册会计师怎么注册非执业?注会执业与非执业有何区别

注册会计师怎么注册非执业?以下就是关于注册会计师怎么注册非执业等等的介绍&#xff0c;希望对您有所帮助! 一、申请注册为非执业会员 取得注册会计师考试已合格&#xff0c;但尚未在中国境内从事审计业务工作二年以上者&#xff0c;可以自行向取得全科合格证书省级注册会计…

调研主板,树莓派 VS RK3288板子,还是 RK的主板香,但是只支持 anrdoid 7系统,估计也有刷机成 armbian或者

1&#xff0c;目前树莓派好贵啊&#xff01;Pi4bB 2G卖810 现在价格是&#xff1a;800多啊&#xff0c;疯了 哎真叫贵。 但是有个东西叫做 广告机的板子&#xff0c;是批量生产放到商场&#xff0c;地铁播视频的。 再配上一个屏幕&#xff0c;就可以直接播放广告了。 不同的地…

计算机网络4小时速成:传输层,功能,UDP协议,TCP协议,三次握手,传输数据,四次握手,超时重传,流量控制

计算机网络4小时速成&#xff1a;传输层 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle&#xff0c…

【云原生】Kubernetes(k8s)Calico 客户端工具 calicoctl

文章目录一、概述二、calicoctl 安装三、calicoctl 简单使用1&#xff09;认证信息配置2&#xff09;查看 IP 资源池3&#xff09;配置 IP 池4&#xff09;IP 资源池示例演示5&#xff09;固定 IP 示例演示6&#xff09;网络策略&#xff08;NetworkPolicy&#xff09;四、Kube…

盘点MySQL的八大日志,你知道哪些?

前言 日志对于任何系统应用来说都承载着至关重要的作用&#xff0c;借助日志&#xff0c;我们可以发现系统运行错误的原因&#xff0c;从而解决问题。MySQL也不例外&#xff0c;也会记录各种各样的日志信息。那么你知道MySQL都有哪些日志吗&#xff1f;每种日志的作用是干吗吗…