-4

可能重复:
PHP 修复警告:无法修改标头信息 - 标头已发送
“警告:标头已发送”在 PHP

我有一个运行良好的网站。第一页是 header.php,第一行是:

<?xml version="1.0" encoding="utf-8"?>

然后有一天它开始说解析错误第1行。所以我在网上做了一些研究并将第一行改为:

<?php echo '<?xml version="1.0" encoding="utf-8"?>' ?>

解析错误问题消失了。但随后又出现了一个问题:

Warning: Cannot modify header information - headers already sent by (output started at /Volumes/raid/Web/Sites/*******.com/header.php:1)

所以我决定从代码中删除第一行(老实说,我不知道它的目的是什么)。然后出现了一个新错误:

Warning: Cannot modify header information - headers already sent by (output started at /Volumes/raid/Web/Sites/*******.com/header.php:25)

这是我找不到任何错误的代码(当然,行尾没有空格)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1  /DTD/xhtml1-transitional.dtd">
<html lang="fr" dir="ltr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <link href="/css/bootstrap.css" rel="stylesheet">
    <link href="/css/style.css" rel="stylesheet">
    <link type="image/x-icon" href="./img/lions_icon" rel="icon">
    <link type="image/x-icon" href="./img/lions_icon" rel="shortcut icon">
    <link href="/css/jquery.ui.all.css" rel="stylesheet">
    <title>Lions</title>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <script src="/js/jquery.js"></script>
    <script src="/js/jquery-1.8.2.js"></script>
    <script src="/js/jquery.ui.core.js"></script>
    <script src="/js/jquery.ui.widget.js"></script>
    <script src="/js/jquery.ui.datepicker.js"></script>
    <script src="/js/bootstrap.js"></script>
    <script>
     $(function() {
      $( "#date" ).datepicker();
      $( "#date" ).datepicker( "option", "dateFormat", "yy-mm-dd");
      });
   </script>
</head>
<?php
 // beggining of the php code,
 ....
?>
<body>
...

第 25 行是 php 开始的地方。

4

5 回答 5

0

完成任何操作后,您无法发送标头。如果您将使用的标题函数放在第 1 行,问题就解决了;)。

于 2012-11-09T14:55:52.203 回答
0

那么问题是您在执行之前已经将数据发送到浏览器

    <?php echo '<?xml version="1.0" encoding="utf-8"?>' ?>

您可能会收到 E_NOTICE 或 E_WARNING。您是否尝试过激活错误报告?

    error_reporting(-1); ini_set('display_errors', 1);
于 2012-11-09T14:55:54.123 回答
0

错误在 php 标签内,可能您使用了 Header Location 之类的东西。在html中没有错误。

于 2012-11-09T14:56:51.400 回答
0

header()如果您在该代码之前输出任何内容,则您正在使用的代码中的某处将返回该错误。<?php另外,请确保您在发送之前和之后没有空格,?>这将导致页面在发送之前将空间重新设置为 htmlheader();

于 2012-11-09T14:54:41.937 回答
0

(如果您使用 php 框架 == true)
{
这种情况可能存在,当您在控制器中有一些输出(例如示例 echo)时。
}

于 2012-11-09T14:58:38.713 回答