我不能setcookie“头已经发送”

可能重复:
“警告:不能修改标题信息 - 已由”错误发送的标题“
setcookie,不能修改标题信息 - 已经发送的标题

我有这个代码来设置cookie:

if (!isset($_COOKIE["CorkIU"])) {
setcookie("CorkIU", 2dd2ee3aUgsvoRye, time()+60*60*24*365, "/");
}

我已经在layout.php文件中添加了这个代码

layout.php文件的第一行是

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<?
    include ("inc/css.php");

if (!isset($_COOKIE["CorkIU"])) {
setcookie("CorkIU", 2dd2ee3aUgsvoRye, time()+60*60*24*365, "/");
}

?>
<head>
<title>Welcome To Example</title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<link href="style/default.css" rel="stylesheet" type="text/css">
</head>

这里是错误:

Warning: Cannot modify header information - headers already sent by (output started at /home/ex/public_html/template/layout.php:4) in /home/ex/public_html/template/layout.php on line 8

错误告诉你你需要知道的一切:

头文件已经发送(输出

在您输出任何内容(您在此执行: <!DOCTYPE html )之前将呼叫移至setcookie


PHP手册

setcookie()定义一个cookie以及其余的HTTP头文件。 像其他标题一样,Cookie必须在脚本输出之前发送(这是协议限制)。 这要求您在任何输出之前调用此函数,包括标记以及任何空格。

链接地址: http://www.djcxy.com/p/34689.html

上一篇: I can't setcookie "headers already sent"

下一篇: Is using output buffering considered a bad practice?