警告:无法修改标头信息-标头已由发送(输出开始于/Applications/XAMPP/


Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/

我是php的新手(最近刚开始学习),我面临着cookie 的问题

这是我收到的错误/警告:

Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/cookies.php:5) in /Applications/XAMPP/xamppfiles/htdocs/cookies.php on line 5

我在文件里写的都是这样的:

<body>
<?php 
setcookie('test', 45, time()+(60*60*24*7));
?>
</body>

**我在Mac 上使用XAMP

知道为什么会发生这种情况吗?我该如何解决/处理它?

谢谢,

是的,因为<body>在setcookie之前。Setcookie首先需要
<?php 
setcookie('test', 45, time()+(60*60*24*7));
?>
<body>
</body>

发件人http://php.net/setcookie:

setcookie()定义了一个cookie,该cookie将与其他HTTP头一起发送。与其他标头一样,cookie必须在任何脚本的输出(这是一个协议限制)。这要求在任何输出之前调用此函数,包括和标签以及任何空白。

在没有任何空间的情况下使用它。您需要在代码的顶部声明它们。。CCD_ 2也发生了同样的情况。所以,记住这一点,以备将来使用。

<?php 
    setcookie('test', 45, time()+(60*60*24*7));
    ?>
<body>
//Your code here
</body>

任何输出之前都必须发送标头。Cookie会发送标头。