有一个想法,我无论如何都无法理解:((( 当我尝试设置cookie(它在login.php的第28行)时,浏览器返回错误!
无法修改标题信息 - 已在第28行的C:\ xampp2 \ htdocs \ video \ login.php中发送的标题(输出从C:\ xampp2 \ htdocs \ video \ index.php:9开始)
但在索引php的第9行,我没有任何标题!有一个标签!!!
我无法理解!有人可以告诉我为什么它会给我这样的错误吗?
答案 0 :(得分:3)
Cookie以标头形式发送。来自setcookie的PHP文档:
setcookie()定义要与其他HTTP标头一起发送的Cookie。与其他标头一样,Cookie必须在之前发送脚本的任何输出(这是协议限制)。这要求您在任何输出之前调用此函数,包括和标记以及任何空格。
此外,如果您的页面以UTF-8格式保存,则BOM(字节顺序标记)将阻止您设置任何标题,因为它计为输出。见http://bugs.php.net/bug.php?id=22108。要解决此问题,您需要保存没有字节顺序标记的文件。
答案 1 :(得分:1)
在发送标题之前,您无法在网站上打印任何内容。
答案 2 :(得分:1)
首先在任何html标签(a.k.a输出)之前设置cookie,甚至在声明!DOCTYPE html 或 head ,标题信息等之前。例如,您的文件可能类似于:
<?php setcookie("oreo", $value, time()+(60*60*24*30));?>
<?php setcookie("vanilla_wafer", $wafer, time()+(60*60*24*30));?>
<!DOCTYPE html>
<head>
<title>Cookies and Milk</title>
</head>
<body>
<p>yo</p>
</body>
</html>
答案 3 :(得分:0)
请发布一些代码。 这个错误意味着什么,已经发送了什么(也可以是回声,错误通知等)。
答案 4 :(得分:0)
您必须在应用程序的最顶层放置标题功能。就像基本上第一行是header();