如何使用POST数据重定向页面

时间:2012-11-16 13:36:50

标签: php apache redirect post http-headers

我有两个不同的服务器,我需要将发布数据从一个服务器发送到另一个服务器。但是我将在下面描述一些问题。首先,让我来描述一下:

  • 第一台服务器使用Apache + PHP,在Linux上运行。
  • 第二台服务器使用IIS,在Windows上运行。已安装PHP。

现在,这就是我要做的事情:

  • 在我的第一台服务器上,用户填写表单并将其提交到同一服务器中的文件。
  • 在该文件中,我将处理用户填写的数据,并将我的用户重定向到第二台服务器上的页面。此重定向必须与我的数据处理结果一起作为POST请求。
  • 仍然在我的秒服务器上,我的用户将完成输入他的信用卡信息。然后,我将处理付款。
  • 付款完成处理后(在我的IIS服务器上),我将用户重定向回第一台服务器中的另一个文件,邮件数据更多(付款处理结果)。

我真的不知道如何重定向我的用户而不“回显”表单并再次提交。

我已经完成了很多关于这个主题的阅读,我设法让我的apache使用cURL发送帖子数据,甚至使用stream_context_createstream_get_contents,并检索结果。但是,我想要做的是将我的用户与发布数据一起重定向,而不是分派请求并显示结果。

这不是this question的重复,因为我的文件不在q0987的同一服务器中,因此无法将数据存储在用户的会话中。

我也意识到我不能使用header函数来发出请求,因为header函数只会创建响应头。

我没有足够的权限在IIS服务器上安装任何库(如cURL / libcurl)。我无法在第一台服务器上处理付款,只看到IIS被允许访问VISAnet库。我也不能把它全部放在我的IIS上。

我正在尝试用PHP实现这一目标,但我甚至不知道我是否有可能做到这一点。

我不想写下并提交表单,因为它会弄乱用户的历史记录(以及后退按钮)。

2 个答案:

答案 0 :(得分:2)

您无法使用POST动词进行重定向。 我认为您的问题可以通过跨服务器交互来解决:

server-1 receives data
server-1 sends data to server-2 and server-2 responds some associated id with that data
server-1 redirects user to server-2 with id in redirect uri query
server-2 receives user's GET request (id is stored in uri query).
server-2 receives data with given id
viola - server-2 knows what server-1 sent to it

答案 1 :(得分:0)

你所要求的不能以你所描述的方式完成。这是设计的,并不意味着这样做。如果可能的话,它将开辟一个全新的利用世界。

你需要改变方法,或者你误解了关于它应该如何完成的重要事情。