setcookie,无法修改标头信息-标头已发送

我是PHP的新手,我刚刚练习了PHP setcookie()并失败了。

http:// localhost / test /

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title></title>

</head>

<body>

<?php

$value = 'something from somewhere';

setcookie("TestCookie", $value);

?>

</body>

</html>

http:// localhost / test /

<?php

// I plan to view the cookie value via view.php

echo $_COOKIE["TestCookie"];

?>

但是我无法运行index.php,像这样的IE警告。

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test\index.php:9) in C:\xampp\htdocs\test\index.php on line 12

毫无疑问,我启用了IE 6 cookie。

我上面的程序有什么问题吗?谢谢。

使用WinXP OS和XAMPP 1.7.3。

回答:

警告很明显。

警告:无法修改标头信息-第12行的C:\ xampp \ htdocs \ test \ index.php中已经发送过的标头(输出从C:\ xampp

\ htdocs \ test \ index.php:9开始)

Cookie在HTTP响应标头中发送。由于HTML内容已经启动,因此您无法返回到标题并添加cookie。

从http://php.net/setcookie:

定义要与其他HTTP标头一起发送的cookie。与其他标头一样,必须在脚本的任何输出

发送cookie (这是协议限制)。这要求您在所有输出(包括<html><head>标记以及任何空格)之前都先调用此函数。

setcookie在任何HTML出现之前移动该语句:

<?php

$value = 'something from somewhere';

setcookie("TestCookie", $value);

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

....

以上是 setcookie,无法修改标头信息-标头已发送 的全部内容, 来源链接: utcz.com/qa/398688.html

回到顶部