【发布时间】:2012-02-16 17:28:52
【问题描述】:
我正在重新实现一个客户端没有源代码并且正在失去对服务器的访问权限的 REST API...
我发现来电者正在发送帖子但没有发布数据。所有的参数都在 URL 中指定,或者如果它是一个发布表单会是什么动作。
像这样:
"POST http://foo.com/api/rest/?method=users.add_user&token=foo§ion=bar&group=baz HTTP/1.1" 200 605 "-" "-"
令我惊讶的是,这些参数既不在 $_GET 也不在 $_POST 中,而仅在 $_REQUEST 中可用。
我在这里遗漏了什么吗?为什么它们不在 $_GET 中作为访问的 URL 的一部分?显而易见的答案是“因为这是一个 POST,所以 GET 是未定义的”?
有人可以告诉我我对那些超级全球的误解吗?
【问题讨论】:
-
这是一个长镜头,但 $_REQUEST 通常还包括 $_COOKIE。是否有可能在客户端的 cookie 中设置这些相同的密钥?
-
您知道在 url 中指定参数是表单的“GET 方式”,而“POST 方式”会将它们发送到 http 正文中?我想这可能与此有关(虽然我不太了解 php)。如果使用 GET 作为方法会发生什么?
-
@ZPiDER - 帖子来自不受我控制的远程脚本,但我的问题与调试该过程无关。
-
@Andrew - 我不这么认为。 $_GET 和 $_POST 完全为空,$_REQUEST 包含 URL 中的所有变量...
标签: php post get request superglobals