困惑于GET和POST方法

时间:2018-05-16 11:42:10

标签: php html

我学到的是:一次只能使用HTTP POST或GET方法。我有以下代码:index.php

<?php 
if($_SERVER['REQUEST_METHOD'] == "POST") {
    echo "Request Method is: ". $_SERVER['REQUEST_METHOD'] .'<br>';
    echo "Get variable is: " . $_GET['getname'] . '<br>';
    echo "Post variable is: " . $_POST['posttitle'];
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Testing Get or Post</title>
</head>
<body>
    <form action="" method="POST">
        <input type="text" name="posttitle" value="somepost"/>

        <button type="submit">Submit</button>
    </form>
</body>
</html>

我通过以下方式浏览表单:http://localhost/testing/index.php?getname=someget。我提交表单,表单数据通过HTTP POST方法发送。

现在我的问题是: 在这种情况下,HTTP方法是POST,并且GET变量$ _GET ['getname']应该不可用。但是,POST和GET变量都可用并打印。

1 个答案:

答案 0 :(得分:2)

这只取决于PHP $_GET$_POST的名称不佳。

$_GET将包含来自请求的URL的查询字符串的数据。这与使用的请求方法完全无关。

PHP可能选择了这个名称,因为带有method="GET"的HTML表单会将数据放入查询字符串中,但这不是创建查询字符串的唯一方法。