Fork me on GitHub

PHP中PHP $_POST和PHP $_REQUEST及PHP $_GET的用法及区别

   笔者最近开始学习PHP语言大法,记录一下学习过程中遇到的知识点。 
 
      今天介绍的是php中有关 php $_post 和 php $_request 及 php $_get 的用法及区别~
 
 

一、用法
 

PHP $_REQUEST

  PHP $_REQUEST 用于收集HTML表单提交的数据。
 
  以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。
  当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。
  在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:
 
<!DOCTYPE html>
<html>
<body>
 
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
 
<?php
$name = htmlspecialchars($_POST['fname']);
echo $name;
?>
 
</body>
</html>

 

 
 
 
 

PHP $_POST

  PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
  以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。
  在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:
 
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
 
<?php
$name = htmlspecialchars($_POST['fname']);
echo $name;
?>
 
</body>
</html>

 

 
 

 

PHP $_GET

  PHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。
  PHP$_GET 也可以收集URL中发送的数据。
  假定我们有一个包含参数的超链接HTML页面:
 
<html>
<body>
<a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a>
</body>
</html>

 

 
  当用户点击链接 "Test $GET", 参数 "subject" 和 "web" 将发送至"test_get.php",你可以在 "test_get.php" 文件中使用 $_GET 变量来获取这些数据。
  以下实例显示了 "test_get.php" 文件的代码:
 
<html>
<body> 
<?php 
echo "Study " . $_GET['subject'] . " @ " . $_GET['web']; 
?> 
</body> 
</html>

 

 
 

注:上述代码及运行结果依赖 菜鸟教程
 
 
以上就是PHP $_POST和PHP $_REQUEST及PHP $_GET的用法和简单的代码实现过程。
 
问题一:PHP $_POST和PHP $_REQUEST的区别(我们如果只从运行结果来看,发现好像并没有什么差别~)
 
问题二:PHP $_POST和PHP $_GET的区别
 
那接下来我们思考一下这些问题,它们在原理上有什么区别呢?
 
 

 

 

---------------------------------------------手动分割线---------------------------------------------

 

 
二、区别
 
  问题一:PHP $_POST和PHP $_REQUEST的区别
 
  PHP $_REQUEST
  •  php中$_REQUEST可以获取以POST方法提交的数据,但是速度比较慢 。
 
 
  PHP $_POST
  • 用来获取由浏览器通过POST方法提交的数据。
  • POST方法他是通过HTTP POST机制,将表单的各个字段放置在HTTP HEADER内一起传送到action属性所指的URL地址中,用户看不到这个过程。
  • 它提交的大小一般来说不受限制(具体根据服务器的不同,还是会些许不同)
 
 
  问题二:PHP $_POST和PHP $_GET的区别
 
  PHP $_POST 
  • 用来获取由浏览器通过POST方法提交的数据。
  • POST方法他是通过HTTP POST机制,将表单的各个字段放置在HTTP HEADER内一起传送到action属性所指的URL地址中,用户看不到这个过程。
  • 它提交的大小一般来说不受限制(具体根据服务器的不同,还是会些许不同)
    1. 安全性较高。
    2. 传送数据量大,请求对数据长度没有要求。
    3.请求不会被缓存,也不会保留在浏览器历史记录中。
 
  PHP $_GET
  • 用来获取由浏览器通过GET方法提交的数据。
  • GET方法他是通过把参数数据加在提交表单的action属性所指的URL中,值和表单内每个字段一一对应,然后在URL中可以看到,但是有如下缺点: 
    1. 安全性不好,在URL中可以看得到。
    2. 传送数据量较小,不能大于2KB。
 
 
 
 
 
 
参考资料:
 
https://www.jb51.net/article/28957.htm
https://www.runoob.com
 
 
 
 
posted @ 2019-12-02 16:16  0yst3r  阅读(1821)  评论(0编辑  收藏  举报
返回顶部