您的位置:首页 > 产品设计 > UI/UE

PHP数据接收变量$_GET、$_POST 、$_REQUEST区别

2015-05-26 15:58 736 查看
1、$_GET 变量



预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。

从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。

$_GET 变量的安全性不如$_POST 。

实例

<span style="font-size:18px;"><form action="welcome.php" method="get">
Name: <input type="text" name="fname">
Age: <input type="text" name="age">
<input type="submit">
</form></span>


当用户点击 "Submit" 按钮时,发送到服务器的 URL 如下所示:
http://www.w3cschool.cc/welcome.php?fname=Peter&age=37
"welcome.php" 文件现在可以通过 $_GET 变量来收集表单数据了(请注意,表单域的名称会自动成为 $_GET 数组中的键):

<span style="font-size:18px;">Welcome <?php echo $_GET["fname"]; ?>.<br>
You are <?php echo $_GET["age"]; ?> years old!</span>


何时使用 method="get"?

在 HTML 表单中使用 method="get" 时,所有的变量名和值都会显示在 URL 中。

注释:所以在发送密码或其他敏感信息时,不应该使用这个方法!

然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

注释:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。

2、$_POST 变量



预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。

从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

注释:然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。

实例

<span style="font-size:18px;"><form action="welcome.php" method="post">
Name: <input type="text" name="fname">
Age: <input type="text" name="age">
<input type="submit">
</form></span>


当用户点击 "Submit" 按钮时,URL 如下所示:
http://www.w3cschool.cc/welcome.php
"welcome.php" 文件现在可以通过 $_POST 变量来收集表单数据了(请注意,表单域的名称会自动成为 $_POST 数组中的键):

<span style="font-size:18px;">Welcome <?php echo $_POST["fname"]; ?>!<br>
You are <?php echo $_POST["age"]; ?> years old.</span>


何时使用 method="post"?

从带有 POST 方法的表单发送的信息,对任何人都是不可见的,并且对发送信息的量也没有限制。

然而,由于变量不显示在 URL 中,所以无法把页面加入书签。

主要区别如下:

① 安全性 post>get

② 数据传输大小 [浏览器]post>get

③ 保存到收藏夹 get比较方便.

3、PHP $_REQUEST 变量

预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容。

$_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据。

$_REQUEST 变量既可以收集GET方法发送的数据,也可以接受POST方法接受的数据。

实例

<span style="font-size:18px;">Welcome <?php echo $_REQUEST["fname"]; ?>!<br>
You are <?php echo $_REQUEST["age"]; ?> years old.</span>


注意事项:

1. 不要经常使用$_REQUEST,

2. 如果不确定_GET/POST

你接收数据时候,可以这样

if($_SERVER['REQUEST_METHOD’]=="POST"){
$echo $_POST['名字'];
}else if($_SERVER[’ REQUEST_METHOD’]=="GET"){
//用 _GET接收.
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: