• 网络安全从入门到精通 (第二章-6) 后端基础PHP—表单验证


    本文内容:

    • 什么是表单?
    • 如何创建一个表单:
    • 接收并验证:
    • PHP和数据库交互

    1,什么是表单?

      表单在网页中主要负责数据采集。

      表单由三部分组成:

        表单标签:这里面包含了处理表单数据所用动态脚本的URL,以及数据提交到服务器的方法。

        表单域:包含了文本框、密码框、隐藏域、多行文本、复选框、下拉选择框和文件上传框等。

        表单按钮:包括提交按钮、复位框和一般按钮:用于数据传送到服务器上的动态脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

      使用场景:

        登录框

        搜索框

        留言框

        上传框

        ……(各种框)

      表单标签:<form action="URL" method="GET/POST">

          action:数据提交到哪里。

          method:什么方式提交。

      表单域:即表单组件,主要有:文本框、密码框、隐藏域、复选框、单选框、文件上传框、多行文本框(文本域)。

    补充:正常情况下,有框一定有表单,但是并不是一个框一个表单。

       表单其实就是一个HTML标签=>form表单。

       反斜杠:[转义字符]

    2,如何创建一个表单?

      <meta charset="utf-8">
      <center>
      <h3>后台登录</h3>
      <form action="" method="POST">

      账号:<input type="text" name="a"><br>
      密码:<input type="password" name="b"><br>
      <input type="submit" value="登录"/>
      </form>
      </center>

     3,接收并验证表单:

      验证表单:

        数据长度、数据类型、是否存在敏感内容:stripos()、strstr()

        stripos:查找字符串首次出现的位置(不区分大小写)。

        stristr:查找字符串首次出现的位置,并返回其余部分字符串。

    要求 检测函数 说明
    字符串不能为空 strlen() 判断字符串长度是否为0
    整数不小于1,不大于100 <= >= 使用大于小于判断整数范围
    数组元素3个 count() 判断数据元素个数
    必须为数字 is_numeric() 如果为数字返回true否则返回false
    必须是数组 is_arrary 数组返回true,非数组返回false
    不能为空 is_null() 为空返回true,否则返回false
      isset() 若存在该变量且不能为null,则返回true,否则返回false

    补充:SQL注入=>攻击核心就是输入的东西当做代码执行=>只要我们的传参在单引号内永远是字符串。

      防注入核心方法:

        正则匹配

        字符串匹配

    4,PHP和数据库交互:

    如下:举例,详细看一下第二章-5

    <?php

    $servername = "localhost";

    $username = "username";

    $password = "password";

    // 创建连接

    $conn = new mysqli($servername, $username, $password);

    // 检测连接

    if ($conn->connect_error) {

    die("连接失败: " . $conn->connect_error);

    }

    echo "连接成功"; 3


    ?>

    与君共勉:

    自己喜欢的东西就不要问别人好不好看,

    你的生活不会因为别人的话变好,

    喜不喜欢,

    决定权还是在自己。

  • 相关阅读:
    UNIX:处理SIGCHLD信号
    多维数组,指针数组使用,指向指针的指针
    bit field
    链表操作,获得泛型效果
    简明 Vim 练级攻略
    指针3,指向链表对象指针的指针
    大端模式,指针数组
    C宏设置掩码
    springboot 启动报错: Multiple Dockets with the same group name are not supported. The following duplicat
    HTML5学习笔记三
  • 原文地址:https://www.cnblogs.com/xz25/p/12548516.html
Copyright © 2020-2023  润新知