如何使用POST的所有变量重定向用户

时间:2010-09-21 05:05:31

标签: php http forms redirect

我有一个带action="script1.php"

的html表单

在script1中,我需要将所有数据写入数据库并重定向到 script2.php,但我需要将发布到script1的所有参数发送到script2。 mod_rewrite已开启

如何使用PHP重定向所有数据通过POST?

如果我喜欢这种令人作呕的做法,那么

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function Search(){
wpc_form.submit();
}
// -->
</script>
</HEAD>
<BODY onload='Search()'>
 <form name=wpc_form  method="post" action="/script2/">
 <?php
foreach($_REQUEST as $name => $value)
echo '<input type="hidden" name="'.$name.'" value="'.$value.'">'
 ?>

 </form>

3 个答案:

答案 0 :(得分:2)

不可能。
但你不需要它。因为你已经掌握了所有这些数据。只需从script2.php

中的数据库中读取它

答案 1 :(得分:0)

重定向不允许您执行此操作,除非您在浏览器中运行自定义客户端代码以从响应消息正文中提取状态以填充表单域。这是高级用法,可能不是您真正想要做的。

如果您确实需要在表单之间传输状态,则可以使用会话执行此操作。浏览器中的表单无法访问数据,但在服务器上运行的PHP脚本可以在请求之间存储值。 Here是PHP的会话教程的链接,可能对您有用。此方法通常用于维护请求之间的应用程序状态以及重定向到第三方服务(如OpenID提供程序等)。

答案 2 :(得分:-1)

您可以使用cURL库(或类似的)从本地脚本向外部服务发送单独的POST请求。

// assemble data from your post here:
$data = array('formfield' => 'data', 'otherfield' => 'otherdata');

// and then send it off somewhere else
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://somewhere.else');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);