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