CakePHP, кодирующий HTML-сущности - PullRequest
1 голос
/ 25 ноября 2010

Привет,

У меня странная проблема с данными, отправляемыми в Cake по URL-пути. Если путь включает в себя объекты, закодированные в URL, закодированные символы, похоже, удаляются, а остальная часть пути URL не передается моему контроллеру. Например:

http://mydomain.com/products/search/pants+%26%2A%25+shoes/1/pg-2/

Это должно передать строку pants &*% shoes действию search() моего контроллера продуктов в качестве первого аргумента, с 1 и pg-2 в качестве двух других аргументов. Но вместо этого я просто получаю pants (с завершающим пробелом) в качестве первого аргумента и без второго или третьего аргумента. Я убедился, что класс Sanitize не используется, и у меня установлен Configure::write('App.encoding', 'UTF-8');.

Есть мысли?

Спасибо, связки,

-saturn

Обновление: Cake видит% 26 в качестве разделителя амперсандов аргументов строки запроса. Разве Cake не должен знать разницу между разделителем строк запроса и литеральным символом? Или я пропускаю что-то кровоточащее очевидное? (Я работал много часов ...)

Обновление 2: Я думаю, что это ошибка. Если я передам URL, как:

http://mydomain.com/products/search/?q=pants%20%2A%24%25%5E%26%20shoes&cat=1&pg=2

Cake анализирует его корректно, то есть различные аргументы сохраняются как параметры строки запроса в $this->params['url']. Икота, по-видимому, происходит только при использовании закодированного амперсанда в пути URL.

Кстати, я использую последнюю версию Cake 1.3.6.

Мне очень интересно узнать мнение другого человека по этому поводу. Спасибо.

...