如果标题已发送,如何重定向?

时间:2010-08-05 08:03:35

标签: php redirect

我使用wordpress,不幸的是,我必须在后端工作。我需要在发送CMS标头时打印有关用户操作的消息。

除了使用javascript还有其他选择吗?我更喜欢PHP解决方案。

echo '<script type="text/javascript">/* <![CDATA[ */'; 
echo 'window.location.href = "'. $redirect_url . '";'; 
echo '/* ]]> */</script>';

3 个答案:

答案 0 :(得分:1)

您可以使用查询字符串传递消息:

header('location: index.php?msg=1');exit;

并使用swich根据msg查询字符串var:

的值显示消息
switch($_GET['msg'])
{
   case: 1; // do foo
   case: 2; // do bar
   case else : ; // ooops
}

答案 1 :(得分:1)

你无法撤消那个标题发送...但是你可以缓冲它,这就是我在问this question时最终做的事情。

希望有所帮助

答案 2 :(得分:0)

我更喜欢:

1。)将 config.php 加载到每个页面的顶部并将 ob_start 添加到其中

2。)将 end_load.php 加载到每个页面的末尾并将 ob_end 放入其中

这种方式将确保在处理结束之前不向客户端提供输出,并且您可以在页面的任何时间使用标题重定向。

我不知道它的缺点。可能是缓存有缺点但不确定