Php setcookie不工作3

Php setcookie不工作3,php,cookies,Php,Cookies,我正在尝试根据mySQL中插入的返回值设置cookie。我知道插入已经起作用了,因为我有mysqli_insert_id($link)的值。但是,在我尝试运行setcookie之前和之后,cookie是相同的。有人能帮忙吗?我使用的代码是 echo mysqli_insert_id($link)."<br>"; print_r($_COOKIE); echo "<br>"; setcookie("id", mysqli_insert_id($link), time()

我正在尝试根据mySQL中插入的返回值设置cookie。我知道插入已经起作用了,因为我有mysqli_insert_id($link)的值。但是,在我尝试运行setcookie之前和之后,cookie是相同的。有人能帮忙吗?我使用的代码是

echo mysqli_insert_id($link)."<br>";
print_r($_COOKIE); 
echo "<br>";
setcookie("id", mysqli_insert_id($link), time() + 60*60*24);
print_r($_COOKIE);
echo "<br>";
echo mysqli_insert_id($link)。“
”; 打印($\u COOKIE); 回声“
”; setcookie(“id”,mysqli_insert_id($link),time()+60*60*24); 打印($\u COOKIE); 回声“
”;
需要先发送,然后才能将任何内容回显到页面正文中。例如:

echo 'test'; //At this point, headers are done, and the body has started
setcookie(...); //Fails
另一种解决方案是在输出到浏览器之前将输出缓冲到内存中。您可以这样做:

ob_start();
echo 'test'; //Output is captured, and stored in memory
setcookie(...); //Nothing has been output yet, so header is set properly

ob_end_flush(); //We're done storing stuff in the buffer, output it to the browser.

从手动设置cookie()中定义一个cookie,该cookie与其余HTTP头一起发送。与其他头一样,cookie必须在脚本输出之前发送(这是协议限制)。这要求您在任何输出之前调用此函数,包括和标记以及任何空格。谢谢,我没有意识到这一限制-但是没有,我已经删除了echo&print\r,它工作得非常好