$ _POST,$ _GET,$ _REQUEST有什么区别?

时间:2017-03-22 04:04:37

标签: php global-variables

我对$_POST, $_GET, $_REQUEST中的这些超全局变量(php)感到有点困惑。我想知道在php中使用这些变量需要哪种情况,这三种代表的主要区别是什么?

4 个答案:

答案 0 :(得分:3)

$ _ POST 是使用application / x-www-form-urlencoded或multipart / form-data作为HTTP内容时通过HTTP POST方法传递给当前脚本的关联变量数组 - 输入请求。 您可以在向服务器发送大数据时使用,或者如果您有密码,信用卡详细信息等敏感信息,则可以使用

$ _ GET 是通过URL参数传递给当前脚本的关联变量数组。您可以在有少量数据时使用它,它主要用于分页,页码显示在网址中,您可以使用$ _GET

轻松地从URL获取页码

$ _ REQUEST 是'超全球'或自动全局变量。这仅仅意味着它在整个脚本的所有范围内都可用。它是一个关联数组,默认包含$ _GET,$ _POST 和$ _COOKIE 的内容(取决于request_order=

答案 1 :(得分:2)

有两种方法可以将HTML表单数据从1页发送到另一页或将HTML页发送到服务器端(在PHP中)。

  1. POST

这是一种使用数据包发送数据的方法,该数据包对于Web浏览器的任何用户都不可见。与GET方法相比,它是安全的。

  1. GET

这是一种使用URL发送数据的方法,该URL在任何Web浏览器的地址栏中均对用户可见。因此,它作为POST方法并不安全。

现在,共有三个超全局变量可以在PHP中捕获此数据。

  1. $_POST:它可以捕获使用POST方法发送的数据。
  2. $_GET:它可以捕获使用GET方法发送的数据。
  3. $_REQUEST:它可以捕获使用POST和GET方法发送的数据。

也可以使用$_GET超全局变量来收集通过“提交”按钮在URL中发送的数据。

答案 2 :(得分:1)

区别在于:

DataGridView grid_records = new DataGridView();
grid_records.DataSource = dset;
//grid_records.DataBind();

Response.Clear();

Response.Buffer = true;
Response.ClearContent();
Response.ClearHeaders();
Response.Charset = "";
string FileName = "UIDAI" + DateTime.Now + ".xls";
StringWriter strwritter = new StringWriter();
HtmlTextWriter htmltextwrtter = new HtmlTextWriter(strwritter);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName);
grid_records.GridLines = GridLines.Both;
grid_records.HeaderStyle.Font.Bold = true;
grid_records.RenderControl(htmltextwrtter);
Response.Write(strwritter.ToString());
//Response.End();

Response.Flush();
Response.SuppressContent = true;
HttpContext.Current.ApplicationInstance.CompleteRequest();

答案 3 :(得分:-1)

要了解更好,请访问http://www.diffen.com/difference/GET-vs-POST-HTTP-Requests

  

1)$_GET$_POST都会创建一个数组,例如array( key => value, key2 => value2, key3 => value3, ...)。此数组包含键/值对,其中键是表单控件的名称,值是来自用户的输入数据。

     

2)GETPOST都被视为$_GET$_POST。这些是超级全局,这意味着它们始终可以访问,无论范围如何 - 您可以从任何函数,类或文件访问它们,而无需执行任何特殊操作。

     

3)$_GET是通过URL参数传递给当前脚本的变量数组。

     

4)$_POST是通过HTTP POST方法传递给当前脚本的变量数组。

     

----而$_REQUEST包含$_POST$_GET$_COOKIE

希望它有所帮助。