Почему PHP автоматически HTML не декодирует мой POST? - PullRequest
0 голосов
/ 17 мая 2011

Я использую Zend Framework для проекта.Почему, когда я делаю POST-запрос и получаю параметры в моем контроллере $this->_request->getParams(), он показывает незакодированные значения?Например, строка типа Speakers & keyboards в моей HTML-форме извлекается как Speakers & keyboards из getParams () в PHP.

Разве PHP не выполняет автоматическое декодирование каждого опубликованного значения?

Ответы [ 3 ]

2 голосов
/ 17 мая 2011

Привет, Джон, спасибо за подсказку!Я думаю, что это действительно проблема, так как я делаю запрос AJAX POST, и он берет данные со страницы HTML.Поэтому перед отправкой запроса лучше использовать что-то вроде urlDecode () ... Что вы думаете?

Проблема в том, что вы отправляете HTML и хотите текст.* Когда вы захватываете контент со страницы, получаете текст вместо HTML.Так что не используйте innerHTML или jQuery .html().Получите textNode и прочитайте его data свойство, или используйте jQuery's .text().

1 голос
/ 17 мая 2011

PHP автоматически декодирует экранированный контент, а не контент, который находится в HTML-сущностях.

1 голос
/ 17 мая 2011

Поскольку нет причин для этого.

Данные кодируются для передачи, а затем снова декодируются.HTML не является кодировкой, используемой для транспорта.

Единственная причина, по которой следует ожидать получения HTML, - это если HTML был отправлен и если HTML отправлен, то (предположительно) HTML необходим.Преобразование в текст часто не было бы желательным, чтобы происходило следующее.

...