【问题标题】:How to store items in COOKIES array?如何将项目存储在 COOKIES 数组中?
【发布时间】:2014-03-31 23:26:23
【问题描述】:

我正在尝试保存用户最近在 cakephp 应用程序中查看的设计师的 ID。我的操作view() 类似于以下:

$this->Cookie->write('designers', $id);
$cookies = $this->Cookie->read('designers'); 
$this->set("designer_id", $cookies);

view.ctp

<h2>COOKIE</h2>
<p>Designer ID from cookie: 
    <?php
        echo $designer_id;
    ?>
</p>

并且正在显示我检查过的设计师的id。现在如何保存我已签入 cookie 的设计师的 ID?我试过如下:

$myarray = array();
$myarray[] = $id;
$this->Cookie->write('designers', $myarray);

但该数组仅包含我当前正在查看的id

【问题讨论】:

  • 但数组只包含我当前正在查看的 id..你的意思是,你只将 id 保存到它,所以它只会在视图中显示 id页。你到底卡在哪里了?
  • 假设我正在查看带有 id=1 的设计器,数组包含元素 1。我再次查看 id 为 2 的设计器,数组包含元素 2,但这次我需要数组 (1,2)

标签: php arrays cakephp cookies


【解决方案1】:

没错,因为你每次都在擦除它。

你需要取回 cookie 来重写它:

$myarray = $this->Cookie->read('designers');
$myarray[] = $id;
$this->Cookie->write('designers', $myarray);

【讨论】:

  • 它是一样的:/ 和var_dump($_COOKIE) 没有在其中显示变量designers!发生了什么 ? !
  • 如何使用此方法并序列化数组(如下所述)
【解决方案2】:

试试这个:

$this->Cookie->write('designers', serialize($myarray));

还有这个:

$cookies = unserialize($this->Cookie->read('designers')); 

【讨论】:

    猜你喜欢
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2013-10-04
    • 2014-04-03
    • 2012-07-20
    • 1970-01-01
    相关资源
    最近更新 更多