微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决setcookie,无法修改标头信息-标头已发送

警告很明显。

警告:无法修改标头信息-第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">
....

解决方法

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

http:// localhost / test / index.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 / test / 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 OS和XAMPP 1.7.3。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。