可能重复:
“Warning: Cannot modify header information - headers already sent by” error
setcookie, Cannot modify header information - headers already sent
我有这个代码来设置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
答案 0 :(得分:3)
错误告诉您需要知道的一切:
标头已经由(输出
)发送
在输出任何内容之前将呼叫移至setcookie
(您在此处执行此操作:<!DOCTYPE html
)
答案 1 :(得分:0)
来自 PHP manual :
setcookie()定义了一个与其余部分一起发送的cookie HTTP标头。与其他标头一样,Cookie必须先发送 脚本输出(这是协议限制)。 此 要求您在输出之前调用此函数, 包括和标签以及任何空白。