PHP重定向,保留帖子
我有一个带有复选框表单的html页面。表单的操作指向一个PHP脚本。PHP脚本可以很好地收集POST变量,但显然会显示一个空白屏幕,因为一旦执行,它就会转到www.example/script.PHP 我如何让PHP转到另一个URL以获取更多表单提交信息,同时保持这些帖子的完整性PHP重定向,保留帖子,php,Php,我有一个带有复选框表单的html页面。表单的操作指向一个PHP脚本。PHP脚本可以很好地收集POST变量,但显然会显示一个空白屏幕,因为一旦执行,它就会转到www.example/script.PHP 我如何让PHP转到另一个URL以获取更多表单提交信息,同时保持这些帖子的完整性 header()和metaredirect似乎否决了一切,并没有收集数据。。。如何将这些数据收集到帖子中,然后自动转到另一个表单的html页面,并附加一个PHP脚本作为其操作 如果我用一种令人困惑的方式来表达这一点,我
header()
和metaredirect似乎否决了一切,并没有收集数据。。。如何将这些数据收集到帖子中,然后自动转到另一个表单的html页面,并附加一个PHP脚本作为其操作
如果我用一种令人困惑的方式来表达这一点,我将表示感谢和抱歉 您可以将
$\u POST
变量存储在$\u SESSION
中,然后在表单的最后一部分完成时提交,也可以让中间页面将这些值存储为隐藏输入,然后提交到最后一页。我发现此代码几乎一直都有效(除非在某些情况下,您希望使用自定义post数据转发,而客户端不支持javascript)
这是通过滥用307临时重定向
来实现的,该重定向似乎是转发POST
数据,或者通过创建一个自提交的javascript表单来实现的
这是一种黑客攻击,仅当您必须转发帖子数据时才使用。
<?php
function redirectNowWithPost( $url, array $post_array = NULL )
{
if( is_null( $post_array ) ) { //we want to forward our $_POST fields
header( "Location: $url", TRUE, 307 );
} elseif( ! $post_array ) { //we don't have any fields to forward
header( "Location: $url", TRUE );
} else { //we have some to forward let's fake a custom post w/ javascript
?>
<form action="<?php echo htmlspecialchars( $url ); ?>" method="post">
<script type="text/javascript">
//this is a hack so that the submit function doesn't get overridden by a field called "submit"
document.forms[0].___submit___ = document.forms[0].submit;
</script>
<?php print createHiddenFields( $post_array ); ?>
</form>
<script type="text/javascript">
document.forms[0].___submit___();
</script>
<?php
}
exit();
}
function createHiddenFields( $value, $name = NULL )
{
$output = "";
if( is_array( $value ) ) {
foreach( $value as $key => $value ) {
$output .= createHiddenFields( $value, is_null( $name ) ? $key : $name."[$key]" );
}
} else {
$output .= sprintf("<input type=\"hidden\" name=\"%s\" value=\"%s\" />",
htmlspecialchars( stripslashes( $name ) ),
htmlspecialchars( stripslashes( $value ) )
);
}
return $output;
}
将POST
数据放入会话变量中。我只写echo“…”
,但我很好奇是否有更好的方法。我知道你在说什么,我可以尝试进行会话…但是,一旦script.php执行,我如何进入另一个页面?它只显示一个空白页面…如何让它进入另一个html页面,以便用户可以填写更多表单?谢谢!为什么不直接显示表单的下一部分如果你真的想重定向用户,发布一个标题('Location:www.mysite.com/nextpage.php');
我可以做“下一步”吗将按钮链接提交到下一个表单页面,并以某种方式将所有表单信息放到帖子中?这需要我在同一个html页面上使用php,还是我仍然可以将其保存在自己的文件中?此外,我愿意使用DHTML和ajax来实现这一点。还有,框架