目前我一直致力于一个连接到smsgateway的项目。一旦用户将短信发送到网关,它就会将请求重定向到我们的服务器。问题是它们是在$ _GET方法中收到的。但是短信提供商说他们用$ _POST方法传递它。我们收到的网址如下所示。
http://www.example.com/smstest?msg=sample&id=55788
使用$ _POST方法时,是否可以在url中接收参数
答案 0 :(得分:2)
是的,确实如此。每个HTTP请求的第一行包含method(或动词)以及发出请求的URI。根据方法的选择,对URI没有特殊限制,因此可以对包含query string的URI进行POST请求。
通过PHP,您可以通过$_GET
和$_REQUEST
访问查询字符串中的参数。作为提交表单的一部分传递的参数可以通过$_POST
和$_REQUEST
一直访问。
答案 1 :(得分:2)
HTTP请求可以使用 HTTP方法 POST
,并仍然使用包含查询参数的URL。 POST
只是HTTP标头中使用的“动词”,与GET
(以及PUT
和DELETE
)相同。 URL始终可以包含查询参数,并且它也可以始终包含请求正文(尽管GET
请求不应该)。 PHP变量$_GET
仅表示已解析的URL查询参数,变量$_POST
仅表示已解析的请求正文。它们实际上与HTTP动词没有任何关系,因此有些名称错误。
答案 2 :(得分:1)
执行(POST, GET, PUT, ...)时,您只能有一个动词HTTP Request。但是,你可以做到
<form name="y" method="post" action"y.php?foo=bar">
然后PHP也将填充$ _GET ['foo'],尽管请求是POST。
发表评论
使用
$_SERVER['REQUEST_METHOD']