PHP POST和GET方法

  • POST和GET

    浏览器客户端可以通过两种方式向Web服务器发送信息。
    • GET方法
    • POST方法
    在浏览器发送信息之前,它使用称为URL编码的方案对其进行编码。在该方案中,名称/值对用等号连接,不同的对用&号分开。
    name1=value1&name2=value2&name3=value3
    
    删除空格并替换为+字符,其他任何非字母数字字符将替换为十六进制值。信息编码后,将其发送到服务器。
  • GET方法

    GET方法发送附加到页面请求的编码用户信息。页面和编码信息由?字符分隔
    http://www.test.com/index.htm?name1=value1&name2=value2
    
    • GET方法生成一个长字符串,该字符串出现在服务器日志中,位于浏览器的地址栏中。
    • GET方法仅限于发送最多1024个字符。
    • 如果要将密码或其他敏感信息发送到服务器,请勿使用GET方法。
    • GET不能用于将二进制数据(如图像或word文档)发送到服务器。
    • 可以使用QUERY_STRING环境变量访问GET方法发送的数据。
    • PHP提供$_GET关联数组以使用GET方法访问所有发送的信息。
    通过新建脚本放入以下源码,尝试以下示例。
    <?php
    if( $_GET["name"] || $_GET["age"] ) {
            if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
                    die ("无效的名称和名称应为alpha");
            }
    
            echo "欢迎您: ". $_GET['name']. "<br />";
            echo "您的年龄: ". $_GET['age']. " 岁。";
    
            exit();
    }
    ?>
    <html>
    <body>
    
    <form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "GET">
            姓名: <input type = "text" name = "name" />
            年龄: <input type = "text" name = "age" />
            <input type = "submit" value="提交" />
    </form>
    
    </body>
    </html>
    
  • POST方法

    POST方法通过HTTP标头传输信息。信息按照GET方法的描述进行编码,并放入名为QUERY_STRING的标头中。
    • POST方法对要发送的数据大小没有任何限制。
    • POST方法可用于发送ASCII以及二进制数据。
    • POST方法发送的数据通过HTTP头,因此安全性取决于HTTP协议。通过使用安全HTTP(HTTPS),您可以确保您的信息是安全的。
    • PHP提供了$_POST关联数组,以使用POST方法访问所有发送的信息。
    通过新建脚本放入以下源码,尝试以下示例。
    <?php
    if( $_POST["name"] || $_POST["age"] ) {
            if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
                    die ("无效的名称和名称应为alpha");
            }
    
            echo "欢迎您: ". $_POST['name']. "<br />";
            echo "您的年龄: ". $_POST['age']. " 岁。";
    
            exit();
    }
    ?>
    <html>
    <body>
    
    <form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "POST">
            姓名: <input type = "text" name = "name" />
            年龄: <input type = "text" name = "age" />
            <input type = "submit" value="提交" />
    </form>
    
    </body>
    </html>
    
  • $_REQUEST变量

    PHP $_REQUEST变量包含$_GET$_POST$_COOKIE的内容。我们将在解释cookie时讨论$_COOKIE变量。PHP $_REQUEST变量可用于从使用GET和POST方法发送的表单数据中获取结果。
    通过将源代码放在新建的.php文件脚本中,尝试以下示例。
    <?php
    if( $_POST["name"] || $_POST["age"] ) {
            if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
                    die ("无效的名称和名称应为alpha");
            }
    
            echo "欢迎您: ". $_REQUEST['name']. "<br />";
            echo "您的年龄: ". $_REQUEST['age']. " 岁。";
    
            exit();
    }
    ?>
    <html>
    <body>
    
    <form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "POST">
            姓名: <input type = "text" name = "name" />
            年龄: <input type = "text" name = "age" />
            <input type = "submit" value="提交" />
    </form>
    
    </body>
    </html>