如何通过URL在PHP中接收POST响应

时间:2012-12-27 13:57:35

标签: php

我发现的信息对我没用,或者我根本不明白我在读什么。

正在向特定位置(URL)发出POST请求,并且响应将被发送回我必须指定的URL,该URL存在于我的域中。 (例如www.mysite.org/answers/answer.php

为了提取发送到该位置的每条信息,我需要做些什么?

现在我在表格(已经通过POST提交)已经由answer.php提交给if isset($_POST["submit"])之后从表单页面重定向,{{1}}检查{{1}}但它没有给我任何东西。< / p>

此外,如果我有很多用户在请求我会使用哪个URL,那么每个用户都会被重定向到他们自己的答案页面?

4 个答案:

答案 0 :(得分:0)

“提交”可能是提交按钮的名称?如果表单确实是通过按钮提交的,则此值仅出现在请求中。您可以有多个按钮,以防只有点击按钮的名称出现在帖子数据中。

此外,如果用户在选择最后一个输入字段时按Enter键提交,则表单也会提交,但没有按下任何按钮。在这种情况下,提交按钮的名称在$ _POST(也不是$ _REQUEST)中根本不可用。

长话短说:不要检查按钮的名称。只需检查可用的现场数据。 如果您愿意,可以遍历帖子数据:

foreach ($_POST as $postkey => $postdata)
{
  // $postkey contains the key
  // $postdata contains the value
  // any code here is repeated for every posted value.
}

或者,只要您只是测试:

var_dump($_POST);

答案 1 :(得分:0)

您需要某种存储机制(会话,数据库等)和令牌(会话ID,主键等)。

  1. 当用户提交数据时,在您的网站上生成令牌(例如,使用会话ID)。
  2. 将此令牌连同提交的数据一起提交到其他网站。
  3. 将用户发送到等待页面(见下文)。
  4. 另一个网站(希望)将回复标记回复到您的答案脚本以及回复数据。
  5. 在您的答案脚本中,使用令牌将响应保存在存储中(例如,使用session_id(令牌)函数加载用户会话,然后设置会话变量)。
  6. 在等待页面中,不断轮询存储以查看响应是否已到达。您可以使用元刷新标记每10秒刷新一次页面。

答案 2 :(得分:-1)

而不是Post使用$ _REQUEST,它将适用于Post和Get

答案 3 :(得分:-1)

在你的html表单上添加这样的内容。

 <form action="answer.php" method="post">
 <input type="hidden" name="submitted" value="true" />

然后在answer.php

 <?php
 if (isset($_POST['submitted'])) {
   print_r($_POST);
 }
 ?>