就在那时,我似乎误解了一些关于cookie的内容。为什么不这项工作......我无法在php中设置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设置为这个数字,和主页面反映了这一变化。这工作一次。底部的代码似乎工作,但由于某种原因,它不工作,除非我手动输入的URL使用cookie页面窗口转到主页面。如果我在eachother旁边打开了两个选项卡......它在创建cookie之后不会执行任何操作来刷新主页......我不知道为什么。
另外,我记得听说在setcookie之前什么也没有发生,因为它的工作必须是代码的第一行.....那么我该如何首先检查输入,或者其他条件?谢谢!哦,对,我正在使用Firefox,但我也在我的Android上测试过。它在一个页面上工作,但不是另一个,所以我不认为它是浏览器。
我认为问题是,如果我没有记错的话,'30是一个很小的时间,30表示30毫秒......使它像3 000 3秒 –
'我记得听说在setcookie之前什么也没有,它的工作必须是代码的第一行.....那么我该如何首先检查输入,或者其他条件?“你不能在它之前输出任何东西,因为它会触发标题发送。你仍然可以拥有你喜欢的所有PHP代码。 –
所以我可以保持条件,只要他们不使用回声或什么?我删除了回声,似乎在做伎俩。谢谢!!而肖恩不,它使用秒。 – user1159454