我有一个只接受POST请求的托管脚本。 some,some.hosted / script.php
我如何设置另一个可以接受GET请求然后将其发布到托管脚本的简单php。 所以我可以建立这样的链接:other.site/post2hostedscript.php?postthis=data 然后将postthis = data POST到托管脚本。
TNX
编辑: post2hostedscript.php不会给出任何结果。 结果将直接转到some.hosted / script.php 就像用户直接在托管脚本上POST一样。
答案 0 :(得分:3)
您的post2hostedscript.php
必须:
例如,这可以使用curl来完成;这样的事情应该让你开始:
$queryString = $_SERVER['QUERY_STRING'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.othersite.com/post2hostedscript.php");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $queryString);
curl_exec($ch);
curl_close($ch);
有关可与curl一起使用的选项列表,您可以查看curl_setopt
的页面。
在这里,你必须至少使用:
CURLOPT_POST
:因为你想发送一个POST请求,而不是一个GET CURLOPT_RETURNTRANSFER
:取决于您是希望curl_exec
返回请求的结果,还是仅输出请求。CURLOPT_POSTFIELDS
:将发布的数据 - 即您在传入请求的查询字符串中的内容。请注意,POST请求的响应可能包含一些有趣的HTTP标头 - 如果需要,您必须获取它们(请参阅CURLOPT_HEADER
选项),然后重新启动 - 在你自己的回复中发出有趣的回复(参见header
函数)。
答案 1 :(得分:1)
看看“卷曲”功能,它们可以提供您所需的一切。
答案 2 :(得分:-1)
您可以考虑将旧脚本中$ _POST的所有实例替换为$ _REQUEST,这将导致它同时接受GET和POST。