【问题标题】:Codeiginiter can not create cookieCodeigniter 无法创建 cookie
【发布时间】:2012-01-03 10:54:36
【问题描述】:

我正在尝试使用 codeigniter 创建一个 cookie 大约 2 天 -.- (我很惭愧之前问过这个问题......)

有人愿意解释一下这段代码有什么问题:

    $websiteUrl = preg_replace("/^[\w]{2,6}:\/\/([\w\d\.\-]+).*$/","$1", base_url());
    $this->load->helper('cookie');

    $cookie = array(
               'name'   => 'rememberMe',
               'value'  => $this->encrypt->encode(serialize($serialize)),
               'expire' => (time() + $this->config->item('remember_me')),
               'domain' => '.'.$websiteUrl,
               'path'   => '/',
               'prefix' => 'chv_',
               'secure' => false,
           );

    set_cookie($cookie);

【问题讨论】:

    标签: php codeigniter cookies setcookie


    【解决方案1】:

    确保在运行 set_cookie 之前没有加载额外的空格,这会阻止 cookie 标头发送到浏览器。我花了很多小时追踪这个问题,发现我在某个结束标签的末尾有一个额外的空间。如果您打开 E_WARNING,这应该会揭示问题。

    【讨论】:

      【解决方案2】:
      $this->input->set_cookie($cookie)
      

      $this 是 CI 实例)

      确保$this->config->item('remember_me') > 0


      我曾多次使用 CI,我一直使用原生 setcookie() 函数,因为我真的不需要任何框架来设置 cookie(操作很简单)...但是根据使用 CI 实例和输入的文档CI->input->set_cookie() 应该可以完成这项工作。 请记住,没有任何框架是 100% 完美的工作......它只是一个框架......您可以调试逐步的 CI 代码,看看会发生什么。

      (来自评论)

      【讨论】:

      • 使用助手,我不应该这样做 $this-> ...(我会在稍后测试它是否有效)..
      • 我曾多次使用 CI,我一直使用原生 setcookie() 函数,因为我真的不需要任何框架来设置 cookie(操作很简单)...但是根据文档使用 CI 实例和输入 CI->input->set_cookie() 应该可以工作。请记住,没有任何框架是 100% 完美的工作......它只是一个框架......您可以逐步调试 CI 代码,看看会发生什么。
      • 是的,一步一步调试是我发现我的错误来自在数据库中插入一些东西...有时我讨厌codeigniter的日志...无论如何感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      相关资源
      最近更新 更多