>  기사  >  백엔드 개발  >  php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?

php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?

WBOY
WBOY원래의
2016-06-06 16:45:231175검색

php

回复内容:

$_GET、$_POST函数是在php程序里从GET或POST请求中获取传值,其中GET请求可以在地址栏看到传值,而POST请求将在entity-body(消息体)传值,地址栏看不到(可以通过抓包获取,所以不要觉得POST传值就比GET传值安全)

我写了一个小程序演示GET和POST传值的异同点。在第一行输入框输入内容,点击“test get”即对服务器发出GET请求并传值,而服务器也将返回确认信息;同理,在第二行输入框输入内容,点击“test post”发出POST请求并传值,也将看到返回的确认信息。

在浏览器中看到的页面如下:
php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?HTML代码:
php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?
【服务器确认收到GET请求的传值】
在地址栏可以清楚看到value=rabbit,截图下方也有确认收到传值的信息。
php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?
再看看GET请求的HTTP数据包包文内容,需要传递的值“rabbit”就在请求URL里,作为参数传值(也就是你在地址栏看到的)。
php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?
【服务器确认收到POST请求的传值】
跟上面的GET传值不同的是POST请求传值并不体现在地址栏上(所以很多人都直觉地觉得POST传值比GET安全的原因)。
php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?再看看POST请求的报文内容。通过直接读取数据包报文内容,可以看到请求URL并不包含任何传值的内容,这也就是为什么你在地址栏看不到的原因,而在下方消息体里,很清楚可以看到Value: rabbit。
php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?
虽然两种传值的方式差异甚大,但对于php程序里读取传值的方法大同小异,即通过$_GET、$_POST函数直接读取。
【附】测试程序代码:
php中$_GET和$_POST函数。值不是提交到php文件么,我咋在地址栏中看不到php后缀名?
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.