【问题标题】:codeigniter cookie helper combined with session helpercodeigniter cookie helper 与 session helper 相结合
【发布时间】:2012-06-28 01:05:52
【问题描述】:

是否可以同时运行会话和 cookie 助手?因为我正在尝试,但我无法为我的生活设置一个 cookie,无论我尝试什么方法,要么将 CI 的文档落到信中并在那里这样做,要么尝试仅通过本机 php 使用 cookie。无论哪种方式我尝试cookie都不会设置。

我尝试将它们设置为:

$this->input-set_cookie('AutoRemember', $mID.'-'.$hashbrown, $shortlife);
and
setcookie('AutoRemember', $mID.'-'.$hashbrown, $shortlife);

我也曾尝试与他们合作

echo $this->input->cookie('AutoRemember');
and
echo $_COOKIE['AutoRemember'];

cookie 助手是自动加载的,就像会话一样,所以它们被加载了。会话助手就像一个魅力,但饼干让我头疼。我想要做的就是设置一个cookie,这样我就可以在我的网站上拥有一个“记住我”的功能,而应该做一个5分钟的交易,我花了几个小时通过各种方式来传递它,或者通过设置一些东西视图拾取,以便它可以在视图中设置它,或者在控制器中设置它,什么都没有。

似乎也不是浏览器问题,因为 Chrome 和 FireFox 似乎都没有在任何地方存储 cookie。

同时使用会话和 cookie 是不是有点问题,或者在设置 cookie 时是 codeigniter 垃圾,无论你尝试哪种方式都会扼杀努力。

【问题讨论】:

    标签: php codeigniter cookies setcookie


    【解决方案1】:

    查看一些 Expression Engine 代码(Ellis Labs 提供的使用 CI 的应用程序),他们在其 set_cookie 函数中调用 PHP 原生 setcookie 函数,所以也许这是要走的路。

    看起来 cookie 助手与 Session 库一起运行应该没有问题。也就是说,值得注意的是 Session 类直接调用 setcookie 而不是使用 cookie 助手(重用代码 CI 的方式!)。

    一般来说,调用 PHP 函数 setcookie 应该绕过任何 CI 内容并且无论如何都可以工作,所以如果这不起作用,则可能是其他事情发生了。最好的选择可能是从 setcookie 开始并尝试让它发挥作用。

    检查来自setcookie 的返回值,如果是false 输出已经开始,这就是它不工作的原因;也可能是您在尝试 CI cookie 帮助程序时遇到的相同问题。

    【讨论】:

    • 我不相信我在调用 set_cookie/setcookie 之前的任何地方都在输出,事后我确实有一个回显语句,但如果在我怀疑之前有什么东西,如何查看如果在 cookie/sessions 之前有输出,通常你会得到一个 headers sent 错误,如果之前有输出吗?
    • 我认为最简单的方法是检查setcookie, if(!setcookie(...)) { // output must be starting somewhere else }的结果
    猜你喜欢
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多