【发布时间】:2016-06-03 16:50:51
【问题描述】:
我有一个网站刚刚从一台服务器移动到另一台服务器。在旧服务器上,请求的 get-parameters 被自动“url解码”。现在,在我的新服务器上,当我尝试检索 GET 参数时,我得到的不是 url 解码值,而是编码值。
因为除了服务器之外,我的项目中没有任何变化,这让我觉得这是一个 PHP 设置(可能在 php.ini 中?)。
如何让 PHP 自动解码我的 GET 参数值?
【问题讨论】:
-
Warning The superglobals $_GET and $_REQUEST are already decoded. Using urldecode() on an element in $_GET or $_REQUEST could have unexpected and dangerous results. -
@HankyPanky OP 说他们未解码
-
然后根据手册上的说明,问题出在其他地方。因为没有不会自动解码正确编码的 GET 的 PHP 版本。然而,这里有很多关于 JavaScript 编码值没有正确通过的 cmets。 php.net/manual/en/function.urldecode.php
-
这听起来很奇怪...我不知道任何 php.ini 设置来改变它。此外,您似乎是唯一遇到此问题的人。 三重检查文件是否完全相同。你的新服务器上有一些 RewriteRule 吗?也许是server related issue。
-
感谢您的 cmets。我通过 JavaScript AJAX 请求将参数发送到我的服务器(使用 encodeUriComponent),所以问题可能出在某个地方。我仍然觉得奇怪的是它确实在旧服务器上而不是在新服务器上正常工作,但我会询问我的新托管服务提供商是否知道它可能是什么。
标签: php get decode url-parameters urldecode