7

出于某种原因,我无法在任何页面上从我的 CakePHP 应用程序中读取任何 cookie,它们被设置后,唯一返回的是乱码文本。

我的代码很简单:

$this->Cookie->write('Region', 'test');
$reg = $this->Cookie->read('Region');
pr($reg);

我取消注释 $this->Cookie->write() 行,我得到的只是一堆随机控制字符。我最近也升级到了 CakePHP 1.3,但是 AFAIK 这不应该像这样影响 cookie ......这在我更改 server之前工作正常,这一定是我问题的根源。

更新 在进一步探索之后,我发现这是一个已知问题,适用于 PHP 的 Suhosin 安全补丁会影响 rand() 和 srand() 方法,我已将 Suhosin 配置为允许 rand() 函数,但它仍在发生,是否存在那里有更有效的工作?

4

2 回答 2

7

试试这个将禁用 cookie 加密的代码:

$this->Cookie->write('Region', 'test', false);
$reg = $this->Cookie->read('Region');
pr($reg);

write 方法具有以下参数:

write(mixed $key, mixed $value, boolean $encrypt, mixed $expires)

默认情况下,cookie 中的所有值都由 CakePHP 加密。但是,出于安全原因,您可能希望考虑使用加密。

于 2011-01-18T13:01:10.650 回答
1

CakePHP 默认加密 cookie。

在这个新安装中,您的 Security.salt 值是否相同?

你的 cookie 控制器设置中的 $key 值怎么样?

于 2011-01-18T13:00:39.173 回答