Приветствия,CakePHP кодирование html объектов
У меня возникла странная проблема с данными, отправленными на торт по 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
Update: Cake видит% 26 в качестве разделителя амперсанд строки запроса аргументов. Должен ли Cake знать разницу между разделителем строки запроса и символом литера? Или я пропущу что-то кровоточащее? (Я работал много часов ...)
Обновление 2: Я думаю, что это может быть ошибка. Если я прохожу URL как:
http://mydomain.com/products/search/?q=pants%20%2A%24%25%5E%26%20shoes&cat=1&pg=2
торт разбирает его правильно, то есть различные аргументы сохраняются в виде строки запроса Params в $this->params['url']
. Икота появляется только при использовании кодированного амперсанда в URL-пути.
Кстати, я использую последний Cake 1.3.6.
Мне очень интересно узнать чье-либо мнение по этому поводу. Благодарю.
Я могу подтвердить, что URL-адрес отключен после первого амперсанда. Возможно, лучше всего отправить билет на это. – deceze 2010-11-25 02:03:50