$_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 值也将在此处解码。