PHP cookie的使用

获取

获取浏览器在请求时携带的cookie数据,使用超全局数组变量, $_COOKIE完成对cookie的获取。
其中每个 $_COOKIE 中的元素,对应一个cookie变量,元素的键就是cookie的key,元素的值就是cookie的value。

时间设置

通过cookie的第三个参数可以设置,有效期采用一个时间戳进行表示。
浏览器在向服务器发送请求时,会检测到cookie是否有效,只有没有过有效期的cookie的数据请求时,才会携带。

语法

特殊的有效期值:

  • 0,默认的,表示会话周期
  • Time()-1,删除cookie的标准做法,setCookie(‘KEY’, time()-1)
  • PHP_INT_MAX:逻辑上表示永久有效的cookie,到2038年。

有效路径

cookie在当前目录及其后代目录有效。

Tip:路径,不是代码所在文件的路径,而是浏览器请求的路径。设置’/’可以保证站点所有路径有效。

有效域

Cookie仅在当前域下有效。

可以通过设置,使cookie的有效域扩展到某个一级域名下的所有子域。

第五个参数可以做到。

setCookie('domain_name', 'in_test_kang', 0, '', 'kang.com');

是否仅安全传输

https://加密的http协议。

httponly属性

打开httponly为true,则不可以被其他脚本访问cookie,比如js脚本。
测试如下:

<?php
setCookie('do_httponly', 'php34', 0, '', '', false, true);
setCookie('not_httponly', 'php34', 0, '', '', false, false);

?>
<?php

echo '<pre>';
var_dump($_COOKIE);

?>

<script type="text/javascript">
    console.log(document.cookie);
    alert(document.cookie);
</script>

在控制台上只能看到:
这里写图片描述

语法

cookie值,仅仅支持字符串类型。可以写成数组形式,但是它是两个cookie变量。只是我们自己使用时用数组方便而已。

$_COOKIE仅仅是存储浏览器请求时携带的cookie。当前脚本周期内,设置的cookie,还没有携带,所以不会有效。下次执行脚本时,则会携带cookie。

类似于header(),setCookie()前也不能存在任何的输出。这是HTTP协议规定导致的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值