我有一个表单,一旦点击提交按钮,该表单应该被重定向到订购成功页面。 我试图使用hearder()但已发送的标题错误来了。我无法将其放在php文件的顶部,因为如果提交的表单有错误,我必须重定向到旧的订单页面。
还有其他办法吗?
还有一个疑问, 目前我正在使用以下内容清除所有会话!
<?php session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true); ?>
如果我打算在上面给出n代码之后在同一页面中使用会话,那么我是否必须在表单中再次使用此<?php session_start(); ?>
?
答案 0 :(得分:2)
你可以做几件事,
<script type="text/javascript">parent.location.href = 'nextpage.php';</script>
当输出缓冲处于活动状态时,不会从脚本(标题除外)发送输出,而是将输出存储在内部缓冲区中。
<meta http-equiv="refresh" content="0;url=nextPage.php">
答案 1 :(得分:1)
您正在通过发送到浏览器的内容发送标题,换句话说,在您尝试使用header()之前已经回显了某些内容;
找出什么,退出;在你想要header()之前;试着找出问题
我通常不会建议这样做,因为这将是非常糟糕的做法,但强迫它:
ob_clean(); // Cleans the output buffer
header("Location: redirect-url");
清除会话:
$_SESSION = array();
session_destroy();
<强>更新强>:
是的,您必须再次使用session_start();
重新启动新会话,但请记住您销毁旧会话以清除数据 - 新会话=空会话