setcookie刷新后才生效

php setcookie之后不会立即生效,来看看cookie生成的过程吧;)

先看一段简单代码:

<?php
$name="asdf";
setcookie('name',$name,time()+3600,'/');
echo $_COOKIE['name'];

服务器端php在setcookie后,会在http response header里面加上set-cookie项,

Set-Cookie:name=asdf; expires=Wed, 21-May-2014 11:05:34 GMT; path=/

这是要告诉浏览器让它保存到本地相应位置(不同浏览器保存的位置和方式不同),

然后当浏览器访问相同服务器的时候,会在request header里面加上cookie项,

Cookie:name=asdf

所以浏览器再第一次访问该php的时候读不到 $_COOKIE['name'] 的值,刷新以后服务器端才能拿到‘name’。

另外一种设置cookie的方式是 header("Set-Cookie:name2=1234"); 同样也要刷新或跳转一次才会生效。


看到百度文库里面有一篇很强大的介绍cookie的文章,c​o​o​k​i​e​ ​详​解,好好学习天天向上!


setcookie参数:

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

相关好文:

cookie的作用域是domain本身以及domain下的所有子域名(参数为空时默认当前域名)。click

浏览器cookie匹配发送规则

对匹配发送规则的多个同名cookie,浏览器会全部随request header 发送过去,而且木有优先级??。click    服务器要读取哪个呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值