首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CodeIgniter设置cookies,cookies未设置

CodeIgniter设置cookies,cookies未设置
EN

Stack Overflow用户
提问于 2012-06-26 18:25:19
回答 4查看 6.8K关注 0票数 0

在问这个问题之前,我已经在这里和谷歌上搜索过了,我发现这是一个很受欢迎的问题,但我找到的答案我已经尝试过了,但我仍然失败了。

这是我设置cookie的尝试(注意助手是自动加载的)

代码语言:javascript
运行
复制
$longlife = 60*60*24*60; //60 days
$shortlife = 60*60*24*10; //10 days
$this->input->set_cookie('AutoRemember', $user.'::'.$hashbrown, $shortlife, '.example.com', '/');
$this->input->set_cookie('LongRemember', $user.'::'.$hashbrown, $longlife, '.example.com', '/');

当我尝试对‘$ var_dump ->input->cookie()`输入时,我得到了bool false作为输出,这意味着找不到cookie。这是我第一次尝试在CI中使用cookies,所以目前这个问题超出了我的能力范围。

还请注意,我将上面示例中的真实域更改为example.com,因为我现在不希望该域出现在搜索中。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-27 03:23:07

为Claritiy __编辑的__ ,2013年10月3日

好了,我找出了我的问题所在,我相信这也会对新手有所帮助。所以,当你最初设置你的application/config/config.php

你会发现一行代码:

代码语言:javascript
运行
复制
$config['cookie_prefix']    = "";

虽然这个设置给人的印象是可选的,但事实证明它是一个更多的要求。似乎有一个bug,它并不总是可重现的,所以很难追踪是什么和为什么。底线是,如果没有设置这个配置项。在很多情况下,当cookie正在放置/获取时,它会在引擎盖下静静地破裂。给你留下的印象是当它不工作的时候,它是工作的。

想象一下这有多令人沮丧。无论如何,我对原始问题的解决方法是设置上面提到的前缀行。任何事情都可以,程序员可以选择。

无论如何,对于那些想要设置它的人来说,值得一提。当您设置cookie时,您通常按照文档/指南进行设置。

代码语言:javascript
运行
复制
$this-input->set_cookie('myCookie');

然而,我注意到文档没有指定(或者我没有最后检查)的是您设置的前缀

代码语言:javascript
运行
复制
$config['cookie_prefix']    = "cmh_";//example

当你调用它时,不会得到cookie的值,就像人们认为的那样,医生说应该这样做:

代码语言:javascript
运行
复制
$this->input->cookie('myCookie');

像这样调用该值很可能导致屏幕上什么也看不到。例如,如果你做了一个var_dump()。你会得到bool(false)。换句话说,这意味着它找不到您引用的cookie。这是真的。它不可能它不存在,记住你设置了一个前缀。要在此时获取cookie,您需要执行以下操作

代码语言:javascript
运行
复制
$this->input->cookie('cmh_myCookie');

它将打印出cookie的实际值。

票数 2
EN

Stack Overflow用户

发布于 2012-06-26 18:47:49

仅供参考,您不能从具有不同名称的域(HTTP_HOST)中为域“example.com”设置cookies。这是一个安全问题,浏览器会忽略它。检查mozilla firebug 'NET‘选项卡的响应头,如果cookie存在,并且没有设置,那么我是正确的。

其次,设置cookie后,它将在服务器(php)上可用,只在下一个请求中可用,因为当前的$_COOKIE仍然没有更新。如果CI以不同的方式实现了这一点,那么这就是概念的错误实现。

票数 0
EN

Stack Overflow用户

发布于 2012-06-26 22:38:19

我建议使用CodeIgniter的Session类。

http://codeigniter.com/user_guide/libraries/sessions.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11205307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档