2010-11-24 17 views
1

Salutations,CakePHP encodage des entités html

Je vais avoir un problème étrange avec les données envoyées via gâteau chemin d'URL. Si le chemin inclut des entités codées URL, les caractères codés semblent être supprimés et le reste du chemin d'URL n'est pas transmis à mon contrôleur. Par exemple:

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

Cela devrait passer la chaîne pants &*% shoes à l'action search() de mon contrôleur de produits comme premier argument, avec 1 et pg-2 comme les deux autres args. Mais à la place, je reçois simplement pants (avec un espace de fin) comme premier argument et pas de deuxième ou troisième argument. Je me suis assuré que la classe Sanitize n'est pas utilisée et j'ai Configure::write('App.encoding', 'UTF-8'); ensemble.

Des pensées?

bouquets Merci,

-saturn

Mise à jour: gâteau est de voir 26% comme séparateur esperluette des arguments de chaîne de requête. Ne devrait pas connaître la différence entre un séparateur de chaîne de requête et un caractère littéral? Ou est-ce qu'il me manque quelque chose qui saigne? (J'ai travaillé beaucoup d'heures ...)

Mise à jour 2: Je pense que cela peut être un bug. Si je passe une URL comme:

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

gâteau parse correctement, à savoir les différents args sont stockés sous forme params de chaîne de requête dans $this->params['url']. Le hoquet semble être seulement lors de l'utilisation d'une esperluette codée dans le chemin de l'URL. Par ailleurs, j'utilise le dernier Cake 1.3.6.

Je suis très intéressé de connaître l'opinion de quelqu'un d'autre à ce sujet. Merci.

+1

Je peux confirmer que l'URL est coupée après la première perluète. Il est peut-être préférable de déposer un ticket pour cela. – deceze

Répondre

2

Cochez cet article http://www.dracos.co.uk/code/apache-rewrite-problem/ à propos du problème RewriteRule.

+0

Oui, c'est ça. Après un peu plus de tests, j'ai réalisé que c'était probablement un problème d'Apache et pas un problème de gâteau. Merci pour l'information, cela efface tout. À votre santé. – Soulriser

+0

Content que vous ayez résolu votre problème – riotera