出于某种原因,我在设置任何页面后无法从我的CakePHP应用程序中读取任何cookie,唯一返回的是乱码文本。
我的代码就像这样简单:
$this->Cookie->write('Region', 'test');
$reg = $this->Cookie->read('Region');
pr($reg);
我取消注释$ this-> Cookie-> write()行,我得到的是一堆随机控制字符。我最近也升级到了CakePHP 1.3,但AFAIK这不应该像这样影响cookie ... 这个工作正常,直到我更改了服务器,这一定是我问题的根源。
更新 在进一步探讨之后,我发现这是一个已知的问题,用于PHP的Suhosin安全补丁影响rand()和srand()方法,我已经配置了Suhosin来允许rand()函数,但它仍在发生,是否有在那里更有效的工作?
答案 0 :(得分: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加密。但出于安全原因,您可能希望考虑使用加密。
答案 1 :(得分:1)
CakePHP默认加密cookie。
在这个新安装中,您的Security.salt值是否相同?
Cookie控制器设置中的$ key值如何?