1

我曾经遇到警告:无法添加标头信息 -尝试放置header() session_start()setcookie()之后echo或任何 HTML 标记时已发送标头。但是当我将本地服务器中的 PHP 升级到5.4.7(在XAMPP 1.8.1中)时,我不再遇到这个警告了。这对于 PHP 5.4.X 是否正常?

我尝试在此示例中放置setcookie()一些文本和一个:echo

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Cookie Test</title>
</head>
<body>
<h1>Cookie Test</h1>
<?php
    if (isset($_COOKIE['test'])) {
        echo "<p>{$_COOKIE['test']}</p>";
    } else {
        echo "<p>No cookie..</p>";
        setcookie('test', 'You have a cookie!', time()+300, '/');
    }
?>
</body>
</html>

然后我通过localhost/that-page.php打开页面并刷新..

饼干测试

你有一个饼干!

在我的测试环境中,setcookie()正常工作,没有任何警告。我的设置有问题吗?谢谢你。

使用Win7x64XAMPP 1.8.1

4

1 回答 1

2

可能导致此行为的唯一环境问题是打开输出缓冲。

这可以通过多种方式完成

在 php.ini 中

 output_buffering = On

或者

在 htaccess/httpd.conf 中

 php_flag output_buffering On
于 2013-07-10T19:18:39.940 回答