PHP表单和请求

主要用到 $_GET 和 $_POST 和超全局变量,分别对应两种不同请求方式.

get和post的区别:

get参数对任何人都是可见的,post参数对任何人都是不可见的

get对发送信息量有限制,不适合大型变量值,他的值不能超过2000个字符;post对发送的信息量没有限制(默认post发送的最大数据量为8MB,但可通过设置php.ini的post_max_size进行更改;发送的变量数最大值max_input_var)

get的用途: 可以在收藏夹中收藏get请求页面,或者发送带参数的网址给别人可以直接访问,例如带页码的网址,带商品id的淘宝商品,带文章id的博文.这一点post做不到.

超全局变量$_REQUEST

$_变量包含了$_GET,$_POST和$_COOKIE的内容

$SERVER获取请求方式:可以拿到请求方式,当不知道$_REQUEST的请求是get还是post的时候,就用到$_SERVER来获取请求方式.

$_SERVER[‘REQUEST_METHOD’]

可以同时取到get和post请求的参数

在浏览器F12的应用程序中可以查看cookie. 同时可以在浏览输入给后端.也可以在html代码的input表单的action链接添加键和值.

htmlspecialchars()函数

htmlspecialchars()函数是PHP中的一个内置函数,用于将特定的HTML字符转换为HTML实体字符。这有助于防止跨站点脚本攻击(XSS),确保用户输入的字符串被正确地处理,不会因为浏览器解释特殊字符而执行不必要的脚本。以下是htmlspecialchars()函数的一些关键特点

功能: 用于将字符串中的特殊字符转换为HTML实体,以避免在HTML文档中引起解析错误或安全漏洞.

语法: htmlspecialchars(string $ string, int $ flags = ENT_COMPAT | ENT_HTML401, string|null $ encoding = ini_get("default_charset"), bool $ double_encode = true)

使用实例

  • 将用户输入的文本输出到HTML页面中,防止XSS攻击。
  • 将用户输入的文本存储到数据库中,防止SQL注入攻击。
  • 将用户输入的文本输出到JavaScript或电子邮件中,确保特殊字符被正确显示。

特殊字符

    • & —&
    • ” —"
    • ‘ —'
    • < —&lt;
    • > —&gt;

    注意事项

    • htmlspecialchars()仅处理HTML字符转换,不提供对其他类型攻击的防护,如SQL注入或跨站点请求伪造(CSRF)。
    • 需要确保使用正确的字符编码,以避免转换错误。

    把post请求的数据进行字符化处理:

    <body>
        <form action="./htmlspecialchars.php" method="post">
            <input type="text" name="username" id="">
            <input type="password" name="password" id="">
            <input type="submit" value="submit" name="" id="">
        </form>
    
        <!-- <script>alert('你中招啦!')</script> -->
    </body>
    
    <?php
    //字符化处理数据
        foreach ($_POST as $key => $value){
            if(is_array($value)){
    
            }
            else{
                $$key = htmlspecialchars($value);
                // echo $key,'=',$value,'<br>';
            }
        }
    
        echo $username;
        echo $password;
    
    或:
    <?php
    //字符化处理数据
        foreach ($_POST as $key => $value){
            if(is_array($value)){
    
            }
            else{
                $_POST[$key] = htmlspecialchars($value);
                // echo $key,'=',$value,'<br>';
            }
        }
        var_dump($_POST["username"]);

    表单

    表单是html的知识.

    input select radio checkbox submit 是用于创建表单的关键字或属性.

    get 请求可以拿到一个网址,这个网址里面有用户输入的键和值

    select –菜单

    属性:<select name=”” >下拉菜单

    <select multiple name =”arr[]”> 多选菜单 ,多选菜单提交以数组的形式,name = “arr[]”

    checkbox复选框:<input type=”checkbox” name=”checkbox[]” value=”1″>

    <form action="./user.php" method = "get">
        username:<input type="text" name="username"><br>
        password:<input type="password" name="password"><br>
        
    
        <!-- 下拉菜单 -->
        <select name="names" id="">
            <option value=""></option>
            <option value="1">one</option>
            <option value="2">two</option>
            <option value="3">three</option>
            <option value="4">four</option>
        </select><br>
    
        <!-- 多选菜单 -->
        <select multiple name="arr[]" id="">
            <option value=""></option>
            <option value="1">one</option>
            <option value="2">two</option>
            <option value="3">three</option>
            <option value="4">four</option>
        </select>
    
        <!-- 复选框 -->
        <input type="radio" name = "radio">
    
        <input type="checkbox" name="checkbox[]" value="1">
        <input type="checkbox" name= "checkbox2[]" value="2">
        <input type="checkbox" name= "checkbox3[]" value="3">
        <input type="checkbox">
    
        <!-- 提交 -->
        <input type="submit" value = "submit"><br>
    </form>

    Comments

    1. Owner
      Windows Chrome
      1 month ago
      2024-12-16 17:06:34

      2024.12

      来自广东

    Send Comment Edit Comment

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    Previous
    Next