如何在发送标题时重定向?

问题描述:

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

有没有别的选择比使用JavaScript?我更喜欢PHP解决方案。

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

重定向或打印消息? – 2010-08-05 08:05:34

+0

@col。更清晰:重定向然后打印基于用户acion的消息(例如,删除图像,添加图像等) – justjoe 2010-08-05 09:22:28

您可以通过查询字符串传递消息:

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

并使用SWICH基于msg查询字符串VAR的值,显示其消息:

switch($_GET['msg']) 
{ 
    case: 1; // do foo 
    case: 2; // do bar 
    case else : ; // ooops 
} 
+3

他说,头后已发送...我认为他的意思是一旦内容已经开始 - PHP会抱怨如果您尝试从标记为“后端”的后面再次发送标头 – gordonmleigh 2010-08-05 08:12:50

你可以用” t取消那个头部发送...但是你可以缓冲它,这就是当我问this question时我最终做了什么。

希望帮助

+0

? – 2010-08-05 08:17:14

我喜欢:

1)将的config.php在每个页面的顶部加载,并把ob_start在它

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

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

我对它的缺点一无所知。可能缓存有缺点但不确定

+1

@downvoter:plz写点东西,因为我也知道为什么它不好 – KoolKabin 2010-08-05 08:31:18

+0

我投票支持你(不下来),也想知道它的劣势;对我来说似乎很好。 – Mawg 2010-08-05 13:47:27