<?php
$value='something here';
setcookie("TestCookie",$value);
setcookie("TestCookie",$value,time()+3600);
echo $_COOKIE["TestCookie"];
echo "<br>";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br>";
print_r($_COOKIE); 
setcookie("cookie","ok");
?>最后一行放上去就报错如下:
Warning: Cannot modify header information - headers already sent by (output started at E:\xampp\htdocs\szxh2\comment\testcookie.php:5) in E:\xampp\htdocs\szxh2\comment\testcookie.php on line 10
刚弄不懂啊

解决方案 »

  1.   

    setcookie()是利用HTTP报头来发送cookie信息给浏览器端的,而HTTP报头必须位于实际内容之前输出。简而言之,setcookie(),header()之前不能有输出。
      

  2.   

    cookie之前不能有任何输出。包括空格什么的
      

  3.   

    肯定是文件前有BOM头,去掉就可以。
      

  4.   

    必须在任何其他输出发送前对 cookie 进行赋值
      

  5.   

     Warning:说的很明白了。前面不能有输出
      

  6.   

    对性能影响大不大不是主要的,主要是warning错误通常不能忽略。
      

  7.   

    把最后一句提前,像这样是不是就好了呢?
    <?php
        $value='something here';
        setcookie("TestCookie",$value);
        setcookie("TestCookie",$value,time()+3600);
        setcookie("cookie","ok");
        echo $_COOKIE["TestCookie"];
        echo "<br>";
        echo $HTTP_COOKIE_VARS["TestCookie"];
        echo "<br>";
        print_r($_COOKIE); 
        
    ?>
      

  8.   

    配置php.ini   output_buffering = 4096
      

  9.   

    setcookie("TestCookie",$value);
    setcookie("TestCookie",$value,time()+3600);
    这两个重名啊,不能重名的。