Php 警告:无法修改标题信息

Php 警告:无法修改标题信息,php,header,Php,Header,可能重复: 经过两个小时的搜索,我仍然没有解决这个问题 我收到警告:无法修改标题信息-标题已由第10行的/home/xxx/public_html/xxx1.php:6中的/home/xxx/public_html/xxx2.php发送(输出开始于/home/xxx/public_html/xxx1.php:6) 到目前为止我做了什么 -已检查xxx1和xxx2中是否没有空格。我刚刚更换了网络主机,现在问题出现了。它说它在第6行的xxx1文件中。请问有谁能帮我解决这个问题吗?这是代码 <

可能重复:

经过两个小时的搜索,我仍然没有解决这个问题

我收到警告:无法修改标题信息-标题已由第10行的/home/xxx/public_html/xxx1.php:6中的/home/xxx/public_html/xxx2.php发送(输出开始于/home/xxx/public_html/xxx1.php:6)

到目前为止我做了什么

-已检查xxx1和xxx2中是否没有空格。我刚刚更换了网络主机,现在问题出现了。它说它在第6行的xxx1文件中。请问有谁能帮我解决这个问题吗?这是代码

<?php

require_once(__ROOT__.'/config.php');

?><head>
<script src="scripts/func.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/yui.css">
<script src="scripts/yahoo-dom-event.js"></script>
<script src="scripts/element-min.js"></script>
<script src="scripts/container_core-min.js"></script>
<script src="scripts/editor-min.js"></script>
<script src="scripts/func.js" type="text/javascript"></script>
</head>
<?

BOM-字节顺序标记:

确保此文件和config.php编码时没有BOM。 在记事本++:转到编码->不带BOM的UTF8。

BOM-字节顺序标记:

确保此文件和config.php编码时没有BOM。
在记事本++:转到编码->无BOM的UTF8。

可能在config.php中的closer标记后?>出现空格或空行-对于php5<5.3,这是一个问题。也许像这样

<?php 
//code here
?>
//this may be a space 
// or one more new line

//这可能是一个空间
//还是再来一条新线路
这就是zend代码风格指南建议不关闭php标记的原因 示例文件xxx.php

<?php 
//not closer tag in end of file

可能在config.php中closer标记之后?>出现空格或空行-对于php5<5.3,这是一个问题。也许像这样

<?php 
//code here
?>
//this may be a space 
// or one more new line

//这可能是一个空间
//还是再来一条新线路
这就是zend代码风格指南建议不关闭php标记的原因 示例文件xxx.php

<?php 
//not closer tag in end of file

以前的主机配置了输出缓冲,而新主机没有。这就是你遇到问题的原因

假设上面的代码来自
xxx1
,那么在第6行您将开始输出数据,因为是
标记之外的内容,它被视为直接发送到浏览器的数据。然后,稍后,在脚本
xxx2
的第10行,有一个对
header()
setcookie()
的调用,或者其他一些试图修改响应头的函数

您无法在开始发送正文后修改响应标头,因为标头已发送

您必须:

  • 将上面的HTML存储在字符串中,并在
    xxx2的第10行之后输出
  • 将调用移动到尝试将标题更改为
    xxx1的第6行之前的函数

如果没有看到更多代码,我/我们无法确切地告诉您如何执行此操作。

您以前的主机配置了输出缓冲,而新主机没有。这就是你遇到问题的原因

假设上面的代码来自
xxx1
,那么在第6行您将开始输出数据,因为是
标记之外的内容,它被视为直接发送到浏览器的数据。然后,稍后,在脚本
xxx2
的第10行,有一个对
header()
setcookie()
的调用,或者其他一些试图修改响应头的函数

您无法在开始发送正文后修改响应标头,因为标头已发送

您必须:

  • 将上面的HTML存储在字符串中,并在
    xxx2的第10行之后输出
  • 将调用移动到尝试将标题更改为
    xxx1的第6行之前的函数

如果看不到更多的代码,我/我们无法确切地告诉您如何执行此操作。

第6行的脚本
xxx1
中有什么内容?请尝试在所有文件中使用短标记。它表示错误发生在xxx2.php的第10行。输出在xxx1.php的第6行开始。因此,您已经向我们展示了输出确实开始了,这对我们没有帮助。避免已发送的标题错误的最佳方法是不要在纯PHP代码文件中使用closing
?>
标记第6行的脚本
xxx1
中有什么?尝试在所有文件中使用short tags:它说错误发生在xxx2.PHP的第10行。输出在xxx1.php的第6行开始。因此,您已经向我们展示了输出确实开始了,这对我们没有帮助。避免已发送头错误的最佳方法是不要在纯PHP代码文件中使用closing
?>
标记。嗯,我想我理解,在xx2的第10行,它看起来是这样的:$hResult=mysql\u query(选择id、namn、从r_用户访问,其中sessiond='$sGUID'和namn='$sNICK')或die(mysql_error());然后您可能正在执行导致致命错误的操作,这将反过来尝试将HTTP响应代码更改为
500
,这需要修改标题。您是否得到任何其他输出,或者只是错误消息?嗯,好吧,我想我理解,在xx2的第10行,它看起来是这样的:$hResult=mysql\u query('选择id、namn、access FROM r_users,其中sessiond='$sGUID'和namn='$sNICK')或die(mysql_error());然后您可能正在执行导致致命错误的操作,这将反过来尝试将HTTP响应代码更改为
500
,这需要修改标头。您是否获得任何其他输出,或者只是错误消息?