php7 setcookie无效_PHP7设置和删除cookie

PHP设置和删除cookie都是使用setcookie函数:bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = FALSE [, bool $httponly = FALSE ]]]]]] )$name:cookie名称

$value:cookie值,默认值为“”

$expire:cookie失效时间,默认值为0

$path:cookie所在路径,默认值为当前路径

$domain:cookie所在域名,默认值为“”

$secure:是否只允许在https传输,默认值为FALSE

$httponly:是否只允许http读取,默认值为FALSE

注意:setcookie()函数一定要在有输出之前执行。

设置Cookie

基本用法<?php

$value = 'cookievalue';

setcookie("mycookie", $value);

?>

设置失效时间

cookie失效时间是一个Unix的时间戳,从1970年1月1日00:00:00 UTC开始算的秒数。一般情况下,$expire值会使用time()函数加上将要失效的秒数。<?php

$value = 'cookievalue';

setcookie("mycookie", $value, time() + 3600);

?>

这里表示mycookie将会在一个小时后失效。

设置cookie路径

如果$path没有设定值,它默认为当前目录。设置cookie的访问目录,会限制cookie的访问范围,如设置$path值为:"/":表示整个域名下的url都是可以访问到设置的cookie

"/test/":表示只有url为/test以及/test/的所有子孙目录都是可以访问到此cookie

示例:<?php

$value = 'cookievalue';

setcookie("mycookie", $value, time() + 3600,"/");

?>

设置访问域名

有些人可能会奇怪为什么还要设置域名呢,莫非还可以设定为其他域名?

设置域名分两种情况:空值:如果没有设置域名,默认为空值,cookie只能由当前设置cookie的域名访问

显示设置域名:如设置域名为"example.com",那么“www.example.com”,"demo.example.com"也是可以访问到此cookie,即允许在子域名共享cookie。<?php

$value = 'cookievalue';

setcookie("mycookie", $value, time() + 3600,"/","example.com");

?>

设置$secure和$httponly

这两个参数用于控制http访问域名的方式:$secure为true时,只允许cookie在https上传输

$httponly为true时,只允许http(s)访问,不允许其他脚本读取,如javascript。

设置cookie建议建议设置cookie显式设置cookie的访问路径

出于安全考虑,把httponly设置为true。如果使用的是https,把secure设置为true

删除Cookie

设置完cookie后,可以使用$COOKIE变量来获取已设置的cookie。<?php

// 输出某个cookie

echo $_COOKIE["mycookie"];

// 查看所有的cookie

print_r($_COOKIE);

?>

删除cookie,也是使用setcookie()函数,只需要把cookie的失效时间设置为当前时间之前即可。一般可以使用time()减去一定的秒数<?php

setcookie("mycookie", "", time() - 3600);

?>

如果设置cookie时设置了其他参数,那么需要在有访问到cookie的url上删除cookie<?php

setcookie("mycookie", "", time() - 3600, "/demo/", "example.com", 1);

?>

很多出现删不了cookie的原因,可能就是cookie设定了其他参数,如$path。

循环删除cookies$past = time() - 3600;

foreach ( $_COOKIE as $key => $value )

{

setcookie( $key, $value, $past, '/' );

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值