-3

可能重复:
PHP 已发送的标头

我有一个显示下拉菜单的 php 网页

下拉菜单提供了后端脚本的链接,该脚本将运行查询并设置一些会话变量。然后它重定向到结果页面

header('Location: search_results.php');

重定向因“无法修改标头信息 - 标头已发送”而终止

试图找出解决这个问题的方法。“修改标头”错误是当前运行的 PHP 脚本中始终存在的本地错误?还是一般来说是整个会议?

谢谢,JM

4

4 回答 4

3

确保您没有在该行之前输出任何内容(例如空格或其他输出)。

一个简单的方法是打开输出缓冲区:

ob_start();

并在适当的时候清除它:

ob_end_clear();  // erases output buffer
// or 
ob_end_flush();  // sends output buffer to screen

但是,正确的解决方案是检查您的代码并确保没有杂散的输出语句。

于 2012-08-22T21:39:46.153 回答
1

如果不查看您的代码,我会冒险猜测您在headerPHP 代码之前有 HTML。标头需要在 HTML 之前进行解析。

于 2012-08-22T21:39:46.107 回答
0

ob_start()您可以通过在 PHP 脚本的开头发出一个来尝试使用输出缓冲。

<?php这个错误的一个常见原因是在起始标签之前有一个空格(有时是一个 BOM) ;标头检查是本地的,它不是会话范围的。另一方面,它受到其他包含的 PHP 文件的影响,因此您也必须检查它们。

于 2012-08-22T21:39:57.903 回答
-1

您可以使用元重定向

<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>
于 2012-08-22T21:39:57.840 回答