为啥php setcookie()后,需要刷新两次,才能获得cookie?
如果要立即生效可以先创建空的cookie,然后赋值。
setcookie('test','');
$_COOKIE['test']='123456';PHP的COOKIE在设定之后,必须要刷新一下网页才能生效,至于是什么原因,有人说是为了安全考虑,至于你信不信,反正我信了
不过,这种机制总是会给我们带来这或那的问题,比如前段时间,我的站点上得设置一个广告显示的功能,就需要用到COOKIE,主要目的是为了加大广告的转化率,可是如果刷新生效,就比较麻烦,所以就用了这种方法,好用。
function cookie($var, $value='', $time=0, $path='', $domain=''){
$_COOKIE[$var] = $value;
if(is_array($value)){
foreach($value as $k=>$v){
setcookie($var.'['.$k.']', $v, $time, $path, $domain, $s);
}
}else{
setcookie($var, $value, $time, $path, $domain, $s);
}
}
//调用方法
cookie("website","WEB开发笔记","./","www.lizhenqiu.com");
//
echo $_COOKIE["website"];//输出WEB开发笔记
确实是, JS 也是这样。 放心吧。
你给cookie设定一个有效时间试试
也就是对cookie一次进行了两次赋值
PHP的COOKIE第一次只是创建了这个COOKIE,再次刷新页面后才能使用这个值。
先用setcookie函数创建COOKIE;然后再对COOKIE进行赋值操作。
这样就不用再次刷新,直接就可以获得cookie的值了。
也就是对cookie进行了两次赋值
你获取cookie的方法有问题,用这个吧