-3

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

我从另一个开发人员那里继承了这个网站 taxquest.com,并且 Web 表单给了我一个关于我不熟悉的标头的错误:警告:无法修改标头信息 - 标头已经发送(输出开始于 /home/taxquest/public_html /includes/header.php:27) 在第 11 行的 /home/taxquest/public_html/mailer2.php

表单正确发送电子邮件,但随后进入重定向循环。

在这里的任何帮助将不胜感激。

真诚的,罗杰

4

4 回答 4

2

在输出任何内容之前,您需要有 header() 语句,这包括空格。某些文档(例如以 ANSI 保存的文档)有时会在文档的开头放置空格。如果我将在这篇文章中添加的代码对您没有帮助,请尝试使用不同的编码(如 UTF-8)打开它。

错误的:

<html>
    <head>
    <title><?="Example"; ?></title>
    </head>
    <?php
    header("location: ../");
    ?>

正确的:

<?php
header("location: ../");
?>
    <html>
    <head>
    <title>Example</title>
    </head>
于 2012-06-25T00:54:13.687 回答
1

有时 php 文件末尾不需要的/额外的空格/新行会导致此错误。如果它们存在,请尝试删除它们。特别是在第 27 行的 header.php 中。

如果它们不存在,您可能正在尝试在页面已经发送到浏览器的情况下修改/设置新的标头参数。如果您可以发布一些代码,这个答案可以更具体。

于 2012-06-25T00:52:11.563 回答
0

你的 header() 函数应该在 HTML 标签之前。

于 2012-06-25T01:11:10.063 回答
0

警告:无法修改标头信息 - 标头已由第 11 行 /home/taxquest/public_html/mailer2.php 中的(输出开始于 /home/taxquest/public_html/includes/header.php:27)发送

这是因为您在两个文件中都有标题。(session_start 之类的)您可以尝试在 mailer2.php 之后包含 header.php 并在不必要时从 header 中删除这些行。

并且:在您的 headers 之前应该没有输出。(对不起我的英语不好。)

于 2012-06-25T00:53:08.330 回答