我怎么可以在文档的中间设置cookie,而不会导致“头部已经发送”的错误?我想要做的是使一个注销脚本(设置的工作日志中的饼干......如此奇怪。是不是因为它是封闭在一个if语句?)但我已经回应了页面标题和一些其他的东西我做在页面的顶部,在此之前注销发生。

谢谢!

有帮助吗?

解决方案

的最简单的方法是使用输出缓冲以从发送数据停止PHP到客户端,直到你准备

<?php
ob_start();
// your code
ob_end_flush();
?>

输出缓冲存储所有输出的数据,直到缓冲器被刷新,然后将其发送一次全部,所以start后的任何回声将保持缓冲,直到end_flush然后送到

其他提示

尽量分解为两个部分应用程序:

首先,取消设置cookie,那么你重定向结果页面上的用户。这是工作的常用方法。

也可以尝试在你的开发中使用的框架,它会提高你的技能和你的代码的可维护性。

Cookies是在集流管,其别的被发送之前被发送发送。因此,如果你有真正“呼应”的东西给客户端(浏览器),你的头也被发送。

这是说,你可以缓冲你的输出,并把它所有,一旦所有的代码已经运行(ob_start()ob_end_flush()

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top