美文网首页CodeIgniter
CI(codeigniter)框架中使用set_cookie无效

CI(codeigniter)框架中使用set_cookie无效

作者: 拿破仑蛋糕 | 来源:发表于2017-12-28 16:12 被阅读79次

事件描述

本地开发,使用到了cookie,于是就用了CI框架的 set_cookie() 方法,但是用的过程中手贱把 $secure 参数值设置成了 TRUE,于是cookie一直设置不成功。。。

需要注意的3点

  1. 参数 $secure 如果设置成 TRUE 时,只能通过HTTPS传输才能正确的设置cookie。
    这一点,在CI的文档中并没有详细说明,只是在参数介绍中有英文的说明(见上图)
    但是,分析CI的代码发现,CI中的 set_cookie() 方法,最终调用的是PHP的
    setcookie() 方法,手册中对每个参数有详细的介绍(又一次提醒我,一定要仔细看文档啊!!!)

如果线上为HTTPS,而本地为HTTP,那么可以这样来解决

  1. 参数 domain 的设置
    手册的介绍是这样的:

其中标注的语句很容易忽略,CI的文档中有补充和举例说明 链接跳转

如果需要设置一个全站范围内的 COOKIE ,而不关心用户是如何访问你的站点的, 可以
将 domain 参数设置为你的 URL 前面以句点开头,如:.your-domain.com
  1. 参数 expire 需要注意
    expire表示cookie的过期时间,但是,CI中 set_cookie() 方法和PHP中的 setcookie() 方法中的值却不同,CI中需要传入 以秒为单位的剩余时间 ,PHP中需要传入 剩余时间的时间戳
CI文档.png PHP手册.png

相关文章

网友评论

    本文标题:CI(codeigniter)框架中使用set_cookie无效

    本文链接:https://www.haomeiwen.com/subject/fykvgxtx.html