我以前设置过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语句中。)这终于奏效了。