我是PHP新手,刚刚练习PHP setcookie(),失败了。
http://localhost/测试/索引.php
<!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/测试/view.php
<?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操作系统和XAMPP 1.7.3。
警告很明确。
警告:无法修改标头信息 - 已由第 12 行 C:\xampp\htdocs\test\index.php 中的(输出从 C:\xampp\htdocs\test\index.php:9 开始)发送的标头
Cookie 在 HTTP 响应标头中发送。由于 HTML 内容已经开始,因此您无法返回标头并添加 cookie。
From http://php.net/setcookie:
设置cookie()定义要与其余 HTTP 标头一起发送的 cookie。与其他标头一样,必须发送 cookiebefore脚本的任何输出(这是协议限制)。这要求您在任何输出之前调用此函数,包括<html>
and <head>
标签以及任何空格。
移动那个setcookie
在任何 HTML 出现之前声明:
<?php
$value = 'something from somewhere';
setcookie("TestCookie", $value);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
....
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)