我正在读取setcookie()函数将HTTP标头添加到任何页面,因此必须在发送任何实际页面内容之前调用它。这对我来说很有意义。
但在那之后,有这个例子:
<?php
if (!isset($_COOKIE['visits'])) { $_COOKIE['visits']=0; }
$visits= $_COOKIE['visits'] +1;
setcookie('visits', $visits, time() + 3600);
include 'welcome.inc.php'
...
我的意思是,如果setcookie()是第一个,那不应该是:
setcookie('visits', $visits, time() + 3600);
$visits= $_COOKIE['visits'] +1;
而不是:
$visits= $_COOKIE['visits'] +1;
setcookie('visits', $visits, time() + 3600);
这是一个非常新手的问题,但不能完全理解在所有事情之前需要调用setcookie()的例子。
答案 0 :(得分:3)
Cookie(与所有HTTP标头一样)需要在对页面进行任何OUTPUT之前发送,例如在你打印()或echo()任何东西之前,你不允许在你的第一个&lt;?php之前有任何文字。
但是
$visits= $_COOKIE['visits'] +1;
不会向页面添加任何输出,因此使用它是安全的。
答案 1 :(得分:1)
该文档说您需要在脚本输出任何内容之前设置cookie。
原因:我会解释它,但是这个链接做得很好。总是确保你在回复之前调用setCookie。