1

目前我一直在做一个连接到 smsgateway 的项目。一旦用户向网关发送短信,它会将请求重定向到我们的服务器。问题是它们是在 $_GET 方法中收到的。但是短信提供商说他们在 $_POST 方法中传递它。我们最终收到的 URL 如下所示。

http://www.example.com/smstest?msg=sample&id=55788

使用 $_POST 方法时是否可以在 url 中接收参数

4

3 回答 3

2

是的。每个 HTTP 请求的第一行都包含方法(或动词)和发出请求的 URI。基于方法的选择对 URI 没有特殊限制,因此可以对包含查询字符串的 URI 发出 POST 请求。

$_GET在 PHP 中,您可以通过和正常访问查询字符串中的参数$_REQUEST。作为提交表单的一部分传递的参数可以像往常一样通过$_POST和访问$_REQUEST

于 2011-12-08T05:24:32.923 回答
2

HTTP 请求可以使用HTTP 方法 POST,并且仍然使用包含查询参数的 URL。POST只是 HTTP 标头中使用的“动词”,与GET(and PUTand DELETE) 相同。URL 可以始终包含查询参数,也可以始终包含请求正文(尽管GET请求不应该)。PHP 变量$_GET仅表示解析后的 URL 查询参数,变量$_POST仅表示解析后的请求正文。它们实际上与 HTTP 动词没有任何关系,因此有些误命名。

于 2011-12-08T05:26:41.290 回答
1

在执行HTTP 请求时,您只能使用一个动词(POST、GET、PUT、...)。但是,你可以做

<form name="y" method="post" action"y.php?foo=bar">

然后 PHP 也会填充 $_GET['foo'] ,尽管请求是 POST 的。

征求意见

通过使用

$_SERVER['REQUEST_METHOD']
于 2011-12-08T05:25:36.517 回答