PHP:演示已发送的标题

时间:2016-11-22 22:31:22

标签: php http-headers runtime-error

注意:我试图解决headers already sent问题。我正在尝试创建一个!

我以为我明白了导致这个错误的原因,我试图向一些学生证明这一点。这是一个示例脚本:

Hello

<?php
    ini_set('display_errors',1);
    error_reporting(E_ALL);

    print 'This space for rent …';

    setcookie('test',12);
    header('Testing');
?>

如您所见,我正在尽力在设置标头之前发送输出,可以通过设置cookie间接发送输出,也可以直接使用header()功能。

问题听起来很奇怪,我怎么能出现这个错误?

2 个答案:

答案 0 :(得分:1)

如果在php.ini中启用了输出缓冲,则在收到输出并在结束时发送时,它不会抛出错误。这有点像&#34;懒惰的人&#34;防止这些错误的方法,而不是实际修复导致它们的脚本。您可以通过在输出之前关闭或结束输出缓冲来创建错误,例如ob_end_clean()(然后输出,然后是标题)

答案 1 :(得分:0)

要创建此错误,只需在页眉后的任何位置使用header()函数。

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

确保您的php.ini设置为也显示这些错误。