$_REQUEST 和 urldecode
$_REQUEST and urldecode
我正在 JavaScript 中创建带有请求表单值 (?a=b&c=d) 的 URL 链接,并提交到 PHP 页面。我在 JavaScript 中使用 encodeURIComponent 来正确编码表单信息。
我已经对此进行了测试,我发现 $_REQUEST 中的值已经 urldecode
。所以我从我的 php 中删除了我的 urldecode 调用,因为它们是多余的并且可能对某些输入有害。
这个问题的目的只是为了得到一些保证,我正确地测试了这个我的理解是正确的,并且在正常情况下你不需要在 php.[=11 中显式调用 urldecode =]
据记载,$_GET
已被 url 解码。 $_REQUEST
全局没有提到这一点。
https://www.php.net/manual/en/reserved.variables.get.php
The GET variables are passed through urldecode().
然而从https://www.php.net/manual/en/reserved.variables.request.php:
An associative array that by default contains the contents of $_GET, $_POST and $_COOKIE
我认为可以推断出正在使用类似 array_mege
的内容,因此 GET
值也将在此处解码。
我正在 JavaScript 中创建带有请求表单值 (?a=b&c=d) 的 URL 链接,并提交到 PHP 页面。我在 JavaScript 中使用 encodeURIComponent 来正确编码表单信息。
我已经对此进行了测试,我发现 $_REQUEST 中的值已经 urldecode
。所以我从我的 php 中删除了我的 urldecode 调用,因为它们是多余的并且可能对某些输入有害。
这个问题的目的只是为了得到一些保证,我正确地测试了这个我的理解是正确的,并且在正常情况下你不需要在 php.[=11 中显式调用 urldecode =]
据记载,$_GET
已被 url 解码。 $_REQUEST
全局没有提到这一点。
https://www.php.net/manual/en/reserved.variables.get.php
The GET variables are passed through urldecode().
然而从https://www.php.net/manual/en/reserved.variables.request.php:
An associative array that by default contains the contents of $_GET, $_POST and $_COOKIE
我认为可以推断出正在使用类似 array_mege
的内容,因此 GET
值也将在此处解码。