相关推荐recommended
「PHP系列」PHP $
作者:mmseoamin日期:2024-04-27

文章目录

  • 一、$_GET变量
    • 1. 创建一个包含查询字符串的链接
    • 2. 创建处理 GET 请求的 PHP 脚本
    • 3. 运行示例
    • 二、$POST变量
      • 1. 创建一个包含表单的 HTML 页面
      • 2. 创建处理 POST 请求的 PHP 脚本
      • 3. 运行示例
      • 三、相关链接

        一、$_GET变量

        在 PHP 中,$_GET 是一个超全局变量,用于收集表单数据(当 method=“get” 时)或者通过 URL 参数传递的数据。当用户点击一个带有查询字符串(即 URL 中"?"后面的部分)的链接时,或者提交一个 method 属性为 “get” 的表单时,这些数据就会被发送到服务器,并可以通过 $_GET 数组在 PHP 脚本中访问。

        1. 创建一个包含查询字符串的链接

        首先,创建一个包含查询字符串的链接。例如,在一个名为 index.html 的 HTML 文件中:

        
        
        
            
            GET 方法示例
        
        
            点击这里通过 GET 方法传递数据
        
        
        

        这个链接指向一个名为 get_example.php 的 PHP 脚本,并带有两个查询参数:name 和 age。

        2. 创建处理 GET 请求的 PHP 脚本

        然后,创建一个名为 get_example.php 的 PHP 脚本来处理这个 GET 请求:

        
            // 获取 name 参数的值
            if (isset($_GET["name"])) {
                $name = $_GET["name"];
                echo "姓名: " . htmlentities($name);
            } else {
                echo "没有传递姓名参数。";
            }
            
            echo "
        "; // 获取 age 参数的值 if (isset($_GET["age"])) { $age = intval($_GET["age"]); // 使用 intval 来确保得到一个整数 echo "年龄: " . $age; } else { echo "没有传递年龄参数。"; } } else { echo "这个脚本只接受 GET 请求。"; } ?>

        在这个 PHP 脚本中,我们首先检查请求的方法是否为 “GET”。然后,我们使用 isset() 函数来检查 $_GET 数组中是否存在特定的键(即参数名)。如果存在,我们就获取它们的值,并进行适当的处理(例如,使用 htmlentities() 来防止 XSS 攻击,或者使用 intval() 来确保得到一个整数)。最后,我们将获取到的数据输出到浏览器上。

        3. 运行示例

        现在,当你在浏览器中打开 index.html 文件并点击链接时,浏览器会导航到 get_example.php,并显示从查询字符串中获取的 name 和 age 参数的值。

        使用 $_GET 传递数据有一些限制,特别是当数据量较大或者数据敏感性较高时。此外,直接在 URL 中显示数据可能会导致一些问题,比如数据长度限制和潜在的安全问题(尽管在这个例子中我们使用了 htmlentities() 来防止 XSS 攻击)。对于敏感数据或大量数据,通常建议使用 POST 方法并通过 $_POST 数组来处理。同时,始终要确保对用户输入进行验证和清理,以防止安全漏洞。

        二、$POST变量

        在 PHP 中,$_POST 是一个超全局变量,用于收集通过 HTTP POST 方法发送的表单数据。当 HTML 表单的 method 属性设置为 “post” 时,用户输入的数据会通过 HTTP POST 请求发送到服务器,这些数据可以通过 $_POST 数组在 PHP 脚本中访问。

        1. 创建一个包含表单的 HTML 页面

        首先,创建一个包含表单的 HTML 页面。例如,在一个名为 form.html 的文件中:

        
        
        
            
            POST 方法示例
        
        
            

        用户注册表单







        这个表单包含三个字段:姓名、邮箱和密码。当用户填写表单并点击“注册”按钮时,数据将通过 POST 方法发送到 process_form.php 脚本。

        2. 创建处理 POST 请求的 PHP 脚本

        然后,创建一个名为 process_form.php 的 PHP 脚本来处理这个 POST 请求:

        
            // 获取 POST 变量
            $name = $_POST["name"];
            $email = $_POST["email"];
            $password = $_POST["password"];
            
            // 在这里可以对数据进行校验和清理
            // 例如,检查邮箱格式、密码强度等
            
            // 假设数据校验通过,进行后续处理
            // 这里只是简单地将数据输出到屏幕上
            echo "注册成功!
        "; echo "姓名:" . htmlentities($name) . "
        "; echo "邮箱:" . htmlentities($email) . "
        "; echo "密码:(出于安全考虑,密码不会显示)
        "; // 注意:在实际应用中,密码需要进行哈希处理并安全地存储到数据库 // 你还可以执行其他操作,比如发送确认邮件、重定向用户等 } else { echo "这个脚本只接受 POST 请求。"; } ?>

        在这个 PHP 脚本中,我们首先检查请求的方法是否为 “POST”。然后,我们从 $_POST 数组中获取表单字段的值,并对这些值进行处理。在这个例子中,我们只是简单地将它们输出到屏幕上。在实际应用中,你应该对输入的数据进行校验,比如检查邮箱地址的格式是否正确,密码是否满足复杂度要求等。如果数据校验通过,你可以将数据存储到数据库或执行其他操作。

        3. 运行示例

        现在,当你在浏览器中打开 form.html 文件并填写表单后,点击“注册”按钮,浏览器会发送一个 POST 请求到 process_form.php,并显示处理结果。

        使用 $_POST 来传输数据比 $_GET 更安全,因为 $_POST 不会将数据暴露在 URL 中。但是,你仍然需要对 $_POST 数据进行校验和清理,以防止潜在的安全问题,如 SQL 注入或跨站脚本攻击(XSS)。

        三、相关链接

        1. php官网
        2. php_Github
        3. PHP实现Token
        4. 「PHP系列」PHP简介与起步
        5. 「PHP系列」PHP语法介绍
        6. 「PHP系列」PHP变量
        7. 「PHP系列」PHP echo/print语句、数据类型详解
        8. 「PHP系列」PHP 常量/字符串、类型比较
        9. 「PHP系列」PHP 运算符详解
        10. 「PHP系列」If…Else语句/switch语句
        11. 「PHP系列」数组详解
        12. 「PHP系列」PHP数组排序及运用场景