header 发送后如何跳转到其他页面?
我的模板文件中写了一些代码,我想在某些条件为真时使用 php 跳转到其他页面,但是我不能在这里使用 header 命令,因为在此模板文件之前已经在其他 php 文件中发送了 header 信息. 那么我现在如何跳转到其他网址?只有使用js的方式吗?
Warning: Cannot modify header information - headers already sent by ...
header 发送后如何跳转到其他页面?
我的模板文件中写了一些代码,我想在某些条件为真时使用 php 跳转到其他页面,但是我不能在这里使用 header 命令,因为在此模板文件之前已经在其他 php 文件中发送了 header 信息. 那么我现在如何跳转到其他网址?只有使用js的方式吗?
Warning: Cannot modify header information - headers already sent by ...
使用输出缓冲和标头清除来实现这一点。
ob_start()
...
if (!headers_sent()) {
foreach (headers_list() as $header)
header_remove($header);
}
ob_flush_end()
未经测试,但试一试。
你有两个选择。
一个/使用javascript
window.location = "http://www.yoururl.com";
b/ 使用元
<META http-equiv="refresh" content="5;URL=http://www.yourlink.com/new-link">
此处的最佳解决方案如何修复 PHP 中的“标头已发送”错误
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";