1

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

我的模板文件中写了一些代码,我想在某些条件为真时使用 php 跳转到其他页面,但是我不能在这里使用 header 命令,因为在此模板文件之前已经在其他 php 文件中发送了 header 信息. 那么我现在如何跳转到其他网址?只有使用js的方式吗?

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

3 回答 3

2

使用输出缓冲和标头清除来实现这一点。

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

未经测试,但试一试。

于 2013-10-04T02:37:15.933 回答
1

你有两个选择。

  1. 在发送任何输出之前移动您的标题位置。
  2. 使用客户端重定向,您有两种方法可以做到这一点

一个/使用javascript

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

b/ 使用元

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

此处的最佳解决方案如何修复 PHP 中的“标头已发送”错误

于 2013-10-04T02:39:47.580 回答
1

CP510的回答很好。另一种方法是使用 javascript 重定向页面。引用Ryan McGeary 的回答,你可以做

// 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";
于 2013-10-04T02:44:31.820 回答