繁体   English   中英

PHP中的HTTP POST请求

[英]HTTP POST requests in PHP

你如何重新定向浏览器并在PHP中发送HTTP POST请求? HTTP POST请求的header("Location: file.php?foo=bar") ,如果愿意的话。

您不能 - HTTP不允许这样做 - 如果您想通过重定向传递参数,则必须将它们作为GET变量嵌入到URL中。

C。

这不会重定向浏览器,但可以执行POST请求。

卷曲手册

卷曲POST示例

PHP POST没有卷曲

要重定向浏览器,我建议使用Javascript。

POST和重定向的示例表单

 <FORM action="http://somesite.com/prog/adduser" method="post">
    <P>
    <LABEL for="firstname">First name: </LABEL>
              <INPUT type="text" id="firstname"><BR>
    <LABEL for="lastname">Last name: </LABEL>
              <INPUT type="text" id="lastname"><BR>
    <LABEL for="email">email: </LABEL>
              <INPUT type="text" id="email"><BR>
    <INPUT type="radio" name="sex" value="Male"> Male<BR>
    <INPUT type="radio" name="sex" value="Female"> Female<BR>
    <INPUT type="submit" value="Send"> <INPUT type="reset">
    </P>
 </FORM>

我不确定为什么你需要这个,但是在任何服务器端语言都不可能。

您可以使用jQuery这样的javascript库来使用post请求来请求页面

我不相信你可以通过在请求中间重定向来获取POST数据。 你只限于GET。 如果您希望浏览器发布一些内容,您需要构建一个<form>并提交它。 (或者使用AJAX请求。)

PHP没有这样的东西。 为了实现你的例子,你可以简单地说$_GET['foo'] = 'bar'; include("file.php") $_GET['foo'] = 'bar'; include("file.php") ,但不会更改给浏览器的URL。

类似的问题: 代码翻译:ASP.NET Server.Transfer in PHP

这里问的问题如何使用PHP header()函数POST到页面?

有人评论说,如果您已经拥有数据,为什么需要将其发布到任何地方,为什么不能只对该页面中的数据进行操作?

如果您需要在重定向时传输数据而不在URL中显示数据,则可以使用$ _SESSION,首先将数据存储到会话中,然后重定向页面,重定向后从会话中获取数据并销毁会话数据。

好的,如果您需要将数据传输到其他站点而不显示在URL中,则必须使用Javascript代替...就像将数据传输到payPal一样。 只需创建一个表单并编写一个javascript代码即可在页面加载时自动提交表单。 下面是示例代码:

<form name="myform" action="handle-data.php">
Search: <input type='text' name='query' />
<a href="javascript: submitform()">Search</a>
</form>
<script type="text/javascript">
function submitform()
{
  document.myform.submit();
}
</script> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM