可能重复:
PHP 已发送的标头
我有一个显示下拉菜单的 php 网页
下拉菜单提供了后端脚本的链接,该脚本将运行查询并设置一些会话变量。然后它重定向到结果页面
header('Location: search_results.php');
重定向因“无法修改标头信息 - 标头已发送”而终止
试图找出解决这个问题的方法。“修改标头”错误是当前运行的 PHP 脚本中始终存在的本地错误?还是一般来说是整个会议?
谢谢,JM
可能重复:
PHP 已发送的标头
我有一个显示下拉菜单的 php 网页
下拉菜单提供了后端脚本的链接,该脚本将运行查询并设置一些会话变量。然后它重定向到结果页面
header('Location: search_results.php');
重定向因“无法修改标头信息 - 标头已发送”而终止
试图找出解决这个问题的方法。“修改标头”错误是当前运行的 PHP 脚本中始终存在的本地错误?还是一般来说是整个会议?
谢谢,JM
确保您没有在该行之前输出任何内容(例如空格或其他输出)。
一个简单的方法是打开输出缓冲区:
ob_start();
并在适当的时候清除它:
ob_end_clear(); // erases output buffer
// or
ob_end_flush(); // sends output buffer to screen
但是,正确的解决方案是检查您的代码并确保没有杂散的输出语句。
如果不查看您的代码,我会冒险猜测您在header
PHP 代码之前有 HTML。标头需要在 HTML 之前进行解析。
ob_start()
您可以通过在 PHP 脚本的开头发出一个来尝试使用输出缓冲。
<?php
这个错误的一个常见原因是在起始标签之前有一个空格(有时是一个 BOM) ;标头检查是本地的,它不是会话范围的。另一方面,它受到其他包含的 PHP 文件的影响,因此您也必须检查它们。
您可以使用元重定向
<meta http-equiv="refresh" content="2;url=http://google.com/">
以上会在 2 秒内刷新页面到http://google.com/ 然后 javascript 重定向
<script type='text/javascript'>
document.location.href='http://google.com';
</script>