【问题标题】:Code Igniter cannot insert more than one cookieCodeigniter 不能插入多个 cookie
【发布时间】:2014-11-06 06:28:32
【问题描述】:

我目前正在使用 Code igniter,但同时插入 2 个 cookie 时遇到问题。 这是我的代码:

    $cookie = array(
        'name'   => '__ncookie',
        'value'  => json_encode(array("fr" => 0,    "dc"=> 0,"cor"=> 0 )),
        'expire' => '86500',
        'secure' => false
    );
    $this->input->set_cookie($cookie);
    $chat = array(
        'name'  => '__nsgs',
        'value' => json_encode($this->mchat->get_unread()),
        'expire' => '86500',
        'secure' => false
    );
    $this->input->set_cookie($chat);// when var_dump = NULL

WarningCannot modify header information - headers already sent by (output started at C:\xampp\htdocs\onyx_agent\application\controllers\clogin.php:59)core/Input.php286

我做错了吗?

【问题讨论】:

  • 也许您的cookie 超过了最大尺寸? stackoverflow.com/questions/640938/…
  • 啊,也许我正在尝试在 chat['value'] 中存储一长串 json ......你可能会建议任何解决方法吗?
  • 取决于您需要 cookie 的用途,会话可能是一个很好的替代品。
  • 它说会话和cookie是一样的,唯一的区别是会话存储在服务器端,cookie存储在客户端,会话是否有可能携带更多的数据比饼干?但是会影响加载速度吗?

标签: php codeigniter cookies setcookie


【解决方案1】:

我打算写这个作为评论,但它变得太长了。

如果需要将信息传递到不同的网站,例如跟踪用户访问的位置或来自哪里(例如跟踪用户从哪个广告活动进入您的网站),Cookie 至关重要。

另一方面,会话由您自己的服务器在内部使用。这意味着网站 A 上的会话通常不能在网站 B 上使用,如果您将 cookie/会话保存在您自己的网站中使用并且您有很多信息要存储,您可以使用数据库表来存储会话并简单地给客户端一个 sessionID。

所以我进入您的网站,您为我的用户分配了 42 的 cookie/会话 ID(此时,会话或 cookie 无关紧要),当我使用浏览器发送 http 请求以查看该网站,我将我的 cookie/会话传递给您,然后您可以使用该 ID 运行 SQL 查询并为我的用户获取所有多汁的数据。

但是,如果您需要所有这些数据供其他网站使用,则需要考虑不同的解决方案

【讨论】:

  • 谢谢,我为这个问题做了其他的解决方案。非常有用。
猜你喜欢
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 2012-01-28
  • 2023-03-16
  • 2014-09-07
  • 1970-01-01
相关资源
最近更新 更多