PHP中COOKIE及时生效,不用刷新就可以使用

转载 2018年04月16日 10:21:58
今天遇到了php的cookie必须刷新再生效的问题,可用一下方法解决:


//PHP COOKIE设置函数立即生效,支持数组
function cookie($var, $value = '', $time = 0, $path = '', $domain = '', $s = false)
{
    $_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的值了,cookie参数详情请看php手册

提示:
其实这段代码中对于cookie及时更新起作用的就是这两句:
$_COOKIE[$var] = $value;
setcookie($var, $value, $time, $path, $domain, $s);

也就是对cookie一次进行了两次赋值


原文地址:http://www.cnblogs.com/loveyouyou616/archive/2012/11/22/2782512.html



setcookie刷新后才生效问题

最近遇到cookie在本页面设置后,当前页面无法获取的问题,通过学习了解到cookie的生成流程,终于让LZ了解到其中的原因。下面讲述setcookie刷新后生效的原因。

实验

首先,设置一个Cookie
  1. <?php    
  2.     setcookie('a','aaa',time()+3600,'/');  
  3.     echo $_COOKIE['a'];   
  4. ?>   
下面我们来看看,当首次(当前页面)访问此页面时,会报错:

分析

那么为什么会报Undefined错误呢

①首次访问【未刷新】

我们来看看首次访问时页面响应头信息,发现
[响应头信息]中增加Set-Coookie参数,但[请求头信息]中没有Cookie参数

②>1次访问[刷新过]

我们来看第二次访问时页面显示结果:

发现Cookie的值显示在了页面上。这时我们再来看看[响应头]和[请求头]信息,此时请求头信息中多了参数Cookie



总结Cookie设置生效过程

当我们首次访问设置Cookie的页面时,服务器会把设置的Cookie值通过响应头发送过来,告诉浏览器将cookie存储的本地相应文件夹中(注意:第一次访问时本地还没有存储Cookie,所以此时获取不到值);
当第二次访问(或在进行cookie设置后,过期前所有的访问)时,请求头信息你中都会把Cookie值携带。

下面用图片更加形象的演示Cookie设置生效过程


PHP中COOKIE及时生效,不用刷新就可以使用

今天遇到了php的cookie必须刷新再生效的问题,可用一下方法解决: //PHP COOKIE设置函数立即生效,支持数组 function cookie($var, $value = '', $t...
  • u014796999
  • u014796999
  • 2016年04月06日 21:04
  • 1295

让PHP COOKIE及时生效,不用刷新就可以使用

cookie("mycookie","cookievalue",time()+60); var_dump($_COOKIE["mycookie"]); //PHP COOKIE设置函数立即生效,支持...
  • bl1988530
  • bl1988530
  • 2012年05月31日 11:07
  • 1268

让 PHP COOKIE 立即生效(不用刷新就可以使用)

让 PHP COOKIE 立即生效(不用刷新就可以使用) //PHP COOKIE设置函数立即生效 function setMyCookie($var, $value='', $time=0,...
  • dahuzix
  • dahuzix
  • 2013年07月06日 00:05
  • 1622

让PHP COOKIE立即生效,不用刷新就可以使用

代码如下: //PHP COOKIE设置函数立即生效。 function cookie($var, $value='', $time=0, $path='', $domain=''){ ...
  • ymuyou
  • ymuyou
  • 2012年02月14日 13:38
  • 268

setcookie刷新后才生效问题

引入 最近遇到cookie在本页面设置后,当前页面无法获取的问题,通过学习了解到cookie的生成流程,终于让LZ了解到其中的原因。下面讲述setcookie刷新后生效的原因。 实验 首先,设置...
  • nw_ningwang
  • nw_ningwang
  • 2017年11月10日 20:01
  • 594

setcookie刷新后才生效

php setcookie之后不会立即生效服务器端php在setcookie后,
  • pupur99
  • pupur99
  • 2014年05月22日 10:15
  • 2074

关于js写入cookie立即生效的问题

var noCookie = readCookie("noCookie");      if(noCookie == ""){                //没有cookie则写入 cookie ...
  • chenkelei2008
  • chenkelei2008
  • 2011年03月01日 10:13
  • 1234

在php中如何实现cookie即时生效,不用刷新就可以使用

今天学生在做练习的时候遇到了PHP中的cookie必须刷新才能生效的问题,可用以下方法解决: // php COOKIE设置函数立即生效,支持数组 function cookie($var, ...
  • ylhalo
  • ylhalo
  • 2017年05月25日 16:19
  • 214

PHP 代码更新延迟 PHP代码没及时更新解决方案

本博客第一篇文章。以这篇文章为开始,我将陆续抛出一些开发过程中的遇到过的问题并附带解决方案,希望能帮到你们。问题 修改PHP代码,不能及时更新,要等待许久才更新好 修改PHP代码,刷新页面等待PH...
  • weixin_36333654
  • weixin_36333654
  • 2016年10月08日 22:22
  • 2745

不重启tomcat、jboss更新jsp,实时生效配置指导

默认情况下,jboss和tomcat里,更新jsp都是实时生效的。
  • yinxing2008
  • yinxing2008
  • 2014年05月13日 22:27
  • 1031
收藏助手
不良信息举报
您举报文章:PHP中COOKIE及时生效,不用刷新就可以使用
举报原因:
原因补充:

(最多只允许输入30个字)