问候,
我对通过 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');
设置。
有什么想法吗?
谢谢各位,
-土星
更新: Cake 将 %26 视为查询字符串参数的 & 分隔符。Cake 不应该知道查询字符串分隔符和文字字符之间的区别吗?还是我错过了一些明显的出血?(我已经工作了很多小时......)
更新 2:我认为这可能是一个错误。如果我传递如下 URL:
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。
我很想知道其他人对此的看法。谢谢。