-1

我对 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

知道为什么会发生这种情况,我该如何修复/处理它?

谢谢,

4

3 回答 3

0

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

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

来自http://php.net/setcookie

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

于 2013-06-29T20:28:21.240 回答
0

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

<?php 
    setcookie('test', 45, time()+(60*60*24*7));
    ?>
<body>
//Your code here
</body>
于 2013-06-29T20:31:12.267 回答
0

标头必须在任何输出之前发送。cookie 将发送标头。

于 2013-06-29T20:42:40.433 回答