我无法在php中设置cookie

时间:2012-01-23 08:14:55

标签: php cookies

那时候,我似乎误解了一些关于cookie的事情。为什么这不起作用......

<?php

if (isset($_COOKIE["stop"])){
  echo "Welcome " . $_COOKIE["stop"] . "!<br />";
}


$passedvar = $_POST["stopsaway"];

if (isset($passedvar)){
echo "HHHYES!!!";
if (is_numeric($passedvar)){
echo "Yup its a number string alright! I'll turn it into a int and I'll make a cookie.";
//$passedvar = (int)$passedvar;
setcookie("stop", $passedvar, time()+30);
echo "COOKIE MADE.";
}
}

if (isset($_COOKIE["stop"])){
  echo "Welcome " . $_COOKIE["stop"] . "!<br />";
}
//var_dump($_POST["stopsaway"]);

?>

第二个代码

<?php

$thing = 1;

if ($thing==1){
setcookie("stop","4",time()+30);
}

if (isset($_COOKIE["stop"])){
echo "So why won't it work THERE!?";
}

print_r($_COOKIE);
?>

基本上,我希望用户在字段中输入一个数字,然后将cookie设置为该数字,主页面反映该更改。这工作ONCE。底部代码似乎有效,但由于某种原因它不起作用,除非我手动输入url使用cookie页面窗口转到主页面。如果我在彼此旁边打开了两个标签......在创建cookie之后它只是刷新主页面没有做任何事情......我想知道为什么。

另外,我记得听说setcookie之前什么都没有,因为它工作它必须是第一行代码.....那么我应该如何首先检查输入,或其他条件?谢谢!哦,对,我正在使用Firefox,但我也在我的Android上测试过。它在一个页面上工作但不在另一个页面上,所以我不认为它是浏览器。

1 个答案:

答案 0 :(得分:0)

$ _ COOKIE直到下一页浏览才会被设置。由于您的cookie设置为在30秒后过期,因此下次访问该页面时可能会消失。