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

时间:2013-06-29 20:27:06

标签: php cookies

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

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

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

知道为什么会这样,我该如何解决/处理它?

感谢,

3 个答案:

答案 0 :(得分:0)

是的,因为<body>在setcookie之前。 Setcookie需要先来

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

来自http://php.net/setcookie

  

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

答案 1 :(得分:0)

在没有任何空格的情况下使用它。你需要在代码的最顶层声明它们。同样的事情发生在header("location:xyz.php")。所以请记住这一点,以备将来使用。

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

答案 2 :(得分:0)

标题必须在任何输出之前发送。并且cookie将以标题发送。