Cakephp: апостроф в URl и просмотр кеша - PullRequest
0 голосов
/ 17 марта 2011

У меня проблема с кешем, если в URL есть апостроф.

Например: www.example.com/controller/action/What's+My+Name

Сначалазагрузить, когда кеша нет, он загружается нормально.Однако после создания кэша последующая загрузка страницы вызывает синтаксическую ошибку PHP, поскольку в файле кэша есть строка:

$ controller-> here = $ this-> here = '/ controller /action / What My Name? ';

Обратите внимание, что апострофу не удалось избежать и, следовательно, синтаксической ошибке PHP.

Как это исправить?Считается ли это ошибкой в ​​Cake?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 марта 2011

Вернуться к исходному ответу - вы генерируете недопустимые URL-адреса и каким-то образом ожидаете, что инфраструктура не сломается?

Либо избегайте их (urlencode) на стороне сервера, либо генерируйте слаг для URL.Злоупотребление URL-адресом, как и вы, - однозначное решение, дающее противоречивые результаты - на стороне клиента и на стороне CakePHP.Это не двусмысленный случай - вы делаете это неправильно.

0 голосов
/ 17 марта 2011

Используя функцию PHP urlencode(), кодируйте компонент (ы) вашего URL-адреса, который может содержать не алфавитно-цифровые символы, прежде чем передавать их в HtmlHelper::link или что-то еще.

Возможно, вы также захотите рассмотреть вопрос о том, стоит ли в первую очередь включать не-алфавитно-цифровые символы в ваши URL-адреса, и действительно ли в этом есть реальная необходимость.

...