-2

我正在学习php。我遵循了 php 手册中的示例代码,但它给了我这个警告。

<?php
    $value = 'something from somewhere';

    setcookie("TestCookie", $value);
    setcookie('TestCookie', $value, time() + 3600);
    setcookie("TestCookie", $value, time() + 3600, "/~rasmus/", "example.com",1);
?>
The cookies have been set.
<?php 
    echo 'part 1';
    echo $_COOKIE["TestCookie"];
    echo 'part 2';
    echo $HTTP_COOKIE_VARS['TestCookie'];
    echo 'part 3';
    print_r($_COOKIE);
?>

但输出给了我这个警告。任何人都可以帮忙吗?谢谢 !

( ! ) Warning: Cannot modify header information - headers already sent by (output started at /home/tqjustc/Documents/Workspace/PHP/public_html/demo_PHP/demo1.php:2) in /home/tqjustc/Documents/Workspace/PHP/public_html/demo_PHP/demo1.php on line 5
Call Stack
#   Time    Memory  Function    Location
1   0.0001  631440  {main}( )   ../demo1.php:0
2   0.0001  632176  setcookie ( )   ../demo1.php:5

( ! ) Warning: Cannot modify header information - headers already sent by (output started at /home/tqjustc/Documents/Workspace/PHP/public_html/demo_PHP/demo1.php:2) in /home/tqjustc/Documents/Workspace/PHP/public_html/demo_PHP/demo1.php on line 6
Call Stack
#   Time    Memory  Function    Location
1   0.0001  631440  {main}( )   ../demo1.php:0
2   0.0002  632256  setcookie ( )   ../demo1.php:6

( ! ) Warning: Cannot modify header information - headers already sent by (output started at /home/tqjustc/Documents/Workspace/PHP/public_html/demo_PHP/demo1.php:2) in /home/tqjustc/Documents/Workspace/PHP/public_html/demo_PHP/demo1.php on line 7
Call Stack
#   Time    Memory  Function    Location
1   0.0001  631440  {main}( )   ../demo1.php:0
2   0.0002  632624  setcookie ( )   ../demo1.php:7
The cookies have been set. part 1part 2part 3Array ( [PHPSESSID] => 81990884013fa394c95c38b7f6aeac6e ) 
4

2 回答 2

0

$_COOKIE在脚本执行期间不会被修改。您设置的任何 cookiesetcookie()只会在来自客户端的NEXT请求中显示在 $_COOKIE 中。

除了 $_SESSION,所有超全局变量的值都是在 PHP 第一次启动时设置的,然后就不管了。_SESSION 可以在某些条件下通过 session_start() 调用在以后修改。

于 2013-08-16T19:17:22.590 回答
0

setcookie设置响应头。这意味着session_start(),您必须在向客户端发送任何数据之前调用它。

有时你会错误地输出一些东西,比如在你的 php 文件的开头有一个空格。检查demo1.phpline 2它会产生一些输出。

于 2013-08-16T19:14:45.223 回答