По какой-то причине я не могу прочитать файлы cookie из моего приложения CakePHP на любой странице после того, как они были установлены, единственное, что возвращается, – искаженный текст.
Мой код прост:
$this->Cookie->write('Region', 'test'); $reg = $this->Cookie->read('Region'); pr($reg);
Я раскомментирую строку $ this-> Cookie-> write (), и все, что я верну – это куча случайных контрольных символов. Я также недавно был обновлен до CakePHP 1.3, но AFAIK это не должно влиять на файл cookie, как этот … Это работало нормально, пока я не сменил сервер , это должно быть корнем моей проблемы.
Обновление После изучения вокруг этого вопроса я обнаружил, что это известная проблема с патчем безопасности Suhosin для PHP, использующим методы rand () и srand (), я настроил Suhosin, чтобы позволить функции rand (), но все же это происходит, есть более эффективная работа вокруг?
Попробуйте этот код, который отключит шифрование файлов 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. Однако по соображениям безопасности вы, возможно, захотите изучить работу с шифрованием.
CakePHP шифрует файлы cookie по умолчанию.
Является ли ваше значение Security.salt одинаковым в этой новой установке?
Как насчет значения $ key в настройках вашего контроллера cookie?