标题发送后如何跳转到其他页面?

时间:2013-10-04 02:33:17

标签: php

如何在标题发送后跳转到其他页面?

我在我的模板文件中写了一些代码,我想在某些条件为真时使用php跳转到其他页面,但我不能在这里使用header命令,因为标题信息已经在其他php文件中发送过这个模板文件。那我怎么能跳到其他网址呢?只有使用js的方式?

Warning: Cannot modify header information - headers already sent by ...

3 个答案:

答案 0 :(得分:2)

使用输出缓冲和标头清除来实现此目的。

ob_start()
...
if (!headers_sent()) {
  foreach (headers_list() as $header)
    header_remove($header);
}
ob_flush_end()

未经测试,但请试一试。

答案 1 :(得分:1)

你有两种选择。

  1. 在发送任何输出之前移动标题位置。
  2. 使用客户端重定向,您有两种方法可以执行此操作
  3. a /使用javascript

    window.location = "http://www.yoururl.com";
    

    b /使用meta

    <META http-equiv="refresh" content="5;URL=http://www.yourlink.com/new-link">
    

    这里的最佳解决方案How to fix "Headers already sent" error in PHP

答案 2 :(得分:1)

来自CP510的anaswer很好。另一种方法是使用javascript重定向页面。要引用Ryan McGeary answer,您可以执行

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

or

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";