问候,
我遇到一个奇怪的问题,即通过URL路径发送到Cake的数据。如果路径包含url编码实体,则编码的字符似乎被剥离,并且URL路径的其余部分未传递给我的控制器。例如:
http://mydomain.com/products/search/pants+%26%2A%25+shoes/1/pg-2/
这应该将字符串pants &*% shoes
作为第一个参数传递给我的产品控制器的search()
操作,其中两个参数为1
和pg-2
。但我只是将pants
(带尾随空格)作为第一个arg而没有第二个或第三个arg。我确保没有使用Sanitize类,我设置了Configure::write('App.encoding', 'UTF-8');
。
有什么想法吗?
谢谢束,
-saturn
更新: Cake将%26视为查询字符串参数的&符号分隔符。 Cake不应该知道查询字符串分隔符和文字字符之间的区别吗?或者我错过了明显的流血事件? (我已经工作了很多时间......)
更新2:我认为这可能是个错误。如果我传递的网址如下:
http://mydomain.com/products/search/?q=pants%20%2A%24%25%5E%26%20shoes&cat=1&pg=2
Cake正确解析它,也就是说,各种args在$this->params['url']
中存储为查询字符串参数。打嗝似乎仅在URL路径中使用编码的&符时。
顺便说一下,我正在使用最新的Cake 1.3.6。
我很想知道别人对此的看法。感谢。