如何在文档中间设置 cookie,而不会导致“标头已发送”错误?我要做的是制作一个注销脚本(登录cookie设置工作......太奇怪了。是因为它包含在if语句中吗?)但是我已经回应了页面标题和其他一些东西在页面顶部,在我进行此注销之前。
谢谢!
最简单的方法是使用输出缓冲来阻止 PHP 向客户端发送数据,直到您准备好
<?php
ob_start();
// your code
ob_end_flush();
?>
输出缓冲存储所有输出的数据,直到缓冲区被刷新,然后一次全部发送,因此任何之后的回显start
都将保持缓冲,直到end_flush
然后发送
尝试将您的应用程序分解为两部分:
首先,取消设置 cookie,然后在结果页面上重定向用户。这是一种常见的工作方式。
还可以尝试在您的开发中使用框架,它将提高您的技能和代码的可维护性。
Cookies 在标头中发送,在发送其他任何内容之前发送。因此,如果您实际上已经向客户端(浏览器)“回显”了某些内容,那么您的标头也已发送。
也就是说,您可以缓冲输出并在所有代码运行后将其全部发送(ob_start()
和ob_end_flush()
)