不会设置简单cookie


Simple cookie will not set

我以前设置过cookie,它们运行得很好。我基本上已经把代码复制到了另一台服务器上的另一个网页上,但代码不起作用。代码在if语句中,但我知道它的触发,因为我还将代码返回到浏览器进行调试,它就会显示出来。

<?php
    // Set some cookies
            $user = stripslashes($_POST['user']);
            $password = md5($_POST['password']);
            $hour = 0; // Changed to expire on browser close, was time() + 86400;
            setcookie(Panel_ID, $user, $hour); echo "setcookie(Panel_ID, $user, $hour);";
            setcookie(Panel_PW, $password, $hour); echo "setcookie(Panel_PW, $password, $hour);";
?>

然而,当我进入下一页并检查所有存在的cookie时,这两个cookie都没有设置。

<?php     
echo "Cookies set are...";
print_r($_COOKIE);    
?>

当时有一些cookie,但它们来自网站上的论坛,而不是我设置的两个。

我甚至尝试了一个非常简单的cookie来排除可变问题或其他任何问题:

<?php
  setcookie(test,scott,0);
?>

这一点也没有确定。

setcookie的第一个参数应该是字符串。。。看起来您只是将cookie名称作为一个变量输入。试着在第一个论点周围加引号。

终于找到了答案。

我发现了一些关于cookie的帖子,其中提到在setcookie之前不能创建任何HTML。我移动了代码,仍然有问题(没有更改)。然后我移动了我的代码,使它在另一个部分之前被触发。基本上,该页面有一个if(isset($user))和一个if not set。我把if isset移到了另一个部分的上方,这样在设置cookie之前肯定没有HTML被读取(尽管它不应该被读取,因为它在一个没有触发的if语句中。)这终于奏效了。