技术专区 \ PHP

【PHP 零基础入门教程】第二章 PHP表单 (2-7PHP $_POST 变量)

$_Post Request $_Cookie ⋅ 2017-05-22 14:16:53

PHP $_POST 变量

 


$_POST变量:

  预定义的$_POST变量用于收集来自method="post"的表单中的值。从带有POST方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。
注释:在默认情况下,POST方法的发送信息的量最大值为8MB(可通过设置php.ini文件中的post_max_size进行更改)。
实例:

<html>
 <head>
     <meta charset="utf-8">
     <title>php中文网(php.cn)</title>
 </head>
 <body>
 
 <form action="php_post.php" method="post">
     名字: <input type="text" name="name"><br>
     性别:<input type="radio" name="sex" value="男" checked>男
     <input type="radio" name="sex" value="女">女<br>
     年龄: <input type="text" name="age"><br>
     <input type="submit" value="提交">
 </form>
 
 </body>
 </html>

  提交到php_post.php页面。

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_POST['name'] ."<br/>";
 echo "你的性别是:"  .$_POST['sex']."<br/>";
 echo "你的年龄是:".$_POST['age'];
 ?>

程序运行结果:

  从中可以看到用POST提交的信息,没有在Url栏中显示,所以现在知道一点,POST比GET要更为安全一点。

PHP $_REQUEST变量:

  预定义的$_REQUEST变量包含了$_GET、$_POST和$_COOKIE的内容,$_REQUEST变量可用来收集通过GET和POST方法发送的表单数据。
  现在将上面的php文件修改一下看看。

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_REQUEST['name'] ."<br/>";
 echo "你的性别是:"  .$_REQUEST['sex']."<br/>";
 echo "你的年龄是:".$_REQUEST['age'];
 ?>

  会发现不管是$_POST还是$_GET提交的,都能用$_REQUEST接收。

GET 与 POST 的区别:

1.  get安全性非常低,post安全性较高,但是执行效率却比Post方法好。
2.  对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
3.  get是从服务器上获取数据,post是向服务器传送数据。
4.  get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5.  get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,用户看不到这个过程。

建议:
1.  get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式。
2.  在做数据查询时,建议用Get方式,而在做数据添加、修改或删除时,建议用Post方式。