之前我已经设置了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时,这两个都没有设置。
<?php
echo "Cookies set are...";
print_r($_COOKIE);
?>
当时有一些饼干,但它们来自网站上的论坛,而不是我设置的两个。
我甚至尝试过一个非常简单的cookie来排除变量问题或任何事情:
<?php
setcookie(test,scott,0);
?>
那个也没有设置。
答案 0 :(得分:1)
setcookie的第一个参数应该是一个字符串...看起来你只是键入cookie名称作为变量。尝试在第一个参数周围加上引号。
答案 1 :(得分:1)
终于找到了答案。
我发现了一些关于cookie的帖子,提到在setcookie之前不能创建HTML。我移动了我的代码并且仍然存在问题(没有变化)。然后我移动了我的代码,以便在另一部分之前触发它。基本上该页面有一个if(isset($ user))和一个if not set。我将我的if isset移到了另一个部分之上,这样在我的cookie设置之前肯定没有HTML被读取(尽管它不应该是因为它在if语句中没有被触发。)这终于奏效了。